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

时间:2011-05-11 16:32:42

标签: ruby encoding sass

我最近升级到Ruby 1.9,我再也无法用Sass编译任何东西了。

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

 @charset "utf-8";

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

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

回溯:

  

Sass正在关注变化。按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,clock(1 level)in'

     

来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:472:in"product'

     

来自/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:in` 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:在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`'

5 个答案:

答案 0 :(得分:11)

要完成@nex3 answer,您可以

打开config.rb文件并添加:

Encoding.default_external = "UTF-8"

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:0)

这发生在我身上,解决方案并不明显:Jet Brains explained in this post that non-ASCII characters in your files route may break SASS的Elena Pogorelova,就我而言。

users/xxxx/projects/chilediseño/cms/scss (ñ)

我只需要消除上面名称中的(ñ),一切正常。

答案 4 :(得分:-1)

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