Ruby 1.9和Sass编码问题。 (从ASCII-8BIT到UTF-8)

我最近升级到Ruby 1.9,我再也无法使用Sass编译任何内容。

我已经看到了解决方案,如果我放置

@charset "utf-8"; 

在我的.sccs文件的顶部,它将修复它。 但是我仍然收到错误。 这是完整的追溯

我也尝试从我的CSS文件中删除任何非ascii字符,创建一个新的等等。它只是不会编译。 有小费吗?

追溯:

萨斯正在关注变化。 按Ctrl-C停止。

/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:496:in`coding’:不支持转码(从ASCII-8BIT到UTF-8)(ArgumentError)

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:496:in _enc' from /home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:515:in在块中抢救(1级)

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:508:in`block(1 levels)in’

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:472:in“yield”

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:472:in’default’

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:472:in,clock in check_sass_encoding’

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:471:in“each”

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:471:in`find’

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:471:in`check_sass_encoding’

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/engine.rb:349:in`check_encoding!’

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/engine.rb:316:in`_to_tree’

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/engine.rb:291:in`_render’

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/engine.rb:238:在`render’中

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:319:in`update_stylesheet’

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:169:in在update_stylesheets中的块

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:167:in“each”

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:167:in`update_stylesheets’

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:214:in`watch’

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin.rb:111:in`method_missing’

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/exec.rb:408:in`watch_or_update’

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/exec.rb:294:in,process_result’

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/exec.rb:41:in“parse”

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/exec.rb:21:in“解析!”

来自/home/webdev/.gem/repository/gems/sass-3.1.1/bin/sass:8:in`’

来自/home/webdev/.gem/repository/bin/sass:19:in”load’

来自/home/webdev/.gem/repository/bin/sass:19:in`’

要完成@ nex3答案,你可以

打开config.rb文件并添加:

 Encoding.default_external = "UTF-8" 

看起来你的Ruby环境设置为将Sass源代码加载为ASCII-8BIT ,即BINARY 。 这可能是因为您要么将-Kn标志传递给Ruby进程,要么在加载Sass之前将代码中的Encoding::BINARY设置为Encoding::BINARY 。 撤消这个,Sass应该工作。

我不确切知道问题的核心,但似乎Ruby 1.9.0(这个Ubuntu盒子的apt版本可用)和编码存在一些问题。

为了解决这个问题,我使用https://rvm.io这是一个从Git下载和编译Ruby的帮手,给我最新版本。 运行之后,sass编译得很好,一切都很膨胀。

这可能是显而易见的,但您确定您的Sass文件是UTF-8编码的吗? 任何像样的文本编辑器都可以让你转换编码。