2011-05-11 37 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