2011-05-11 35 views
6

我最近升级到了Ruby 1.9,我无法再用Sass编译任何东西。Ruby 1.9和Sass编码问题。 (从ASCII-8BIT到UTF-8)

我见过的状态,如果我把

@charset "utf-8"; 

我.sccs文件的最佳方案,它会解决它。不过,我仍然收到错误消息。这里是完整的回溯

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

回溯:

萨斯是看更改。按下Ctrl-C停止。 “编码”:不支持转码(从ASCII-8BIT转换为UTF-8)编码:不支持转码(从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 /中的'

'中的块(1个级别)来自/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:508:的

。 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'默认”

从/home/webdev/.gem/repository

/gems/sass-3.1.1/lib/sass/util.rb:472:in`block in check_sass_encoding'

from /home/webdev/.gem/repository/gems/sass-3.1.1/lib/ sass/util.rb:471:in`each'

from /home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:471:in`find'

from /home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/util.rb:471:in`check_sass_编码'

from /home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/engine.rb:349:in`check_encoding!'

从/home/webdev/.gem/ /home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/engine.rb:316:in`_to_tree”

repository/gems/sass-3.1.1/lib/sass/engine.rb:291:in'_render'

from /home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass /engine.rb:238:in` render'

from /home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:319:in`update_stylesheet'

from /home/webdev/.gem/repo sitory/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:169:in`block in update_stylesheets'

from /home/webdev/.gem/repository/gems/sass-3.1.1 /lib/sass/plugin/compiler.rb:167:in`each'

from/home/webdev /。gem/repository/gems/sass-3.1.1/lib/sass/plugin/compiler.rb:167:在`update_stylesheets'中

from /home/webdev/.gem/repository/gems/sass-3.1.1 /lib/sass/plugin/compiler.rb:214:in`watch'

from /home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/plugin.rb:111:在`method_missing的 '

从/home/webdev/.gem/repository/gems/sass-3.1.1/lib/sass/exec.rb:408:in`watch_or_update'

从/家/ 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`解析”

从/home/webdev/.gem/repository

/gems/sass-3.1.1/lib/sass/exec.rb:21:in`parse!'

从/home/webdev/.gem/repository/gems/sass-3.1.1/bin/sass:8:in`”

从/home/webdev/.gem/repository/bin/sass :19:'负荷 '

从/home/webdev/.gem/repository/bin/sass:19:in`'

+0

滑稽,你的问题是回答我的问题:)这就是我所需要的编码指定UTF-8,似乎在最新的sass中工作 – OZZIE 2014-04-08 14:52:01

回答

2

我并不确切地知道问题的核心,但似乎在Ruby 1.9.0(适用于此Ubuntu框的apt上可用的版本)和编码方面存在一些问题。

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

-1

这可能是显而易见的,但你确定你的萨斯文件UTF-8编码?任何体面的文本编辑器都会让你转换编码。

+1

使用vim,它使用:language来报告utf-8。如果我设置:set encoding = utf-8,仍然没有运气。 – Bartek 2011-05-11 19:42:16

2

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

+0

非常感谢您的信息,但是如何调整?我只是通过命令行调用Sass二进制文件。在shell中设置的语言环境也是utf-8。 – Bartek 2011-05-12 02:55:39

11

要完成@nex3 answer可以

打开config.rb文件,并添加:

Encoding.default_external = "UTF-8" 
+2

和你在哪里可以在mac上找到这个文件? – OZZIE 2014-04-08 14:42:04

+0

这个答案立即解决了我的问题。在我运行CSS Comb之后,SASS似乎停止了编译,但在此建议之后,SASS现在又重新开始工作了。 – edwinbradford 2014-05-20 02:55:50