Проблемы с кодировкой Ruby 1.9 и Sass. (от ASCII-8BIT к UTF-8)

недавно я обновился до Ruby 1.9, и я больше не могу компилировать что-либо с Sass.

Я видел решения, которые утверждают, что я размещаю

 @charset "utf-8";

в верхней части моего .файл sccs, он исправит это. Однако я все еще получаю ошибку. Вот полный traceback

Я также попытался удалить любые символы, отличные от ascii, из моего CSS-файла, создать новый и т. д. Он просто не будет компилироваться. Есть советы?

Traceback:

Sass наблюдая за изменениями. Нажмите Ctrl-C, чтобы остановить.

/ главная/webdev/.gem / репозиторий / gems/sass-3.1.1/lib/sass / util.rb: 496: in 'encode': транскодирование не поддерживается (от ASCII-8BIT до UTF-8) (ArgumentError)

from / home / webdev/.gem / репозиторий / 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 уровень) в '

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1/lib/sass / util.rb: 508: в ' блоке (1 уровень) в '

от /дома/webdev нужно/.gem / репозиторий / gems/sass-3.1.1/lib/sass / util.rb: 472: в'yield'

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1/lib/sass / util.rb: 472: in 'default'

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1/lib/sass / util.rb: 472: in 'block in check_sass_encoding'

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1/lib/sass / util.rb: 471: в `each'

от /дома/webdev нужно/.gem / репозиторий / gems/sass-3.1.1/lib/sass / util.rb: 471: в 'find'

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1/lib/sass / util.rb: 471: in 'check_sass_encoding'

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1/lib/sass / engine.rb: 349: in ' check_encoding!'

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1/lib/sass / engine.rb: 316: in '_to_tree'

от /дома/webdev нужно/.gem / репозиторий / gems/sass-3.1.1/lib/sass / engine.rb: 291: in '_render'

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1/lib/sass / engine.rb: 238: in 'render'

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1/lib/Sass/плагин / компилятор.rb: 319: в 'update_stylesheet'

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1/lib/Sass/плагин / компилятор.rb: 169: in 'block in update_stylesheets'

от /дома/webdev нужно/.gem / репозиторий / gems/sass-3.1.1/lib/Sass/плагин / компилятор.rb: 167: in 'each'

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1/lib/Sass/плагин / компилятор.rb: 167: в 'update_stylesheets'

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1/lib/Sass/плагин / компилятор.rb: 214: в 'watch'

from / home / webdev/.gem / репозиторий / gems/Sass-3.1.1/lib/Sass / плагин.rb: 111: в 'method_missing'

от /дома/webdev нужно/.gem / репозиторий / gems/sass-3.1.1/lib/sass / exec.rb: 408: in 'watch_or_update'

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1/lib/sass / exec.rb: 294: in 'process_result'

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1/lib/sass / exec.rb: 41: in 'parse'

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1/lib/sass / exec.rb: 21: in ' parse!'

from / home / webdev/.gem / репозиторий / gems/sass-3.1.1 / bin/sass: 8: in `

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

from / home / webdev/.gem / repository / bin/sass: 19: in"

4 ответов


завершить @nex3 ответ вы можете

открыть и добавить:

Encoding.default_external = "UTF-8"

похоже, что каким-то образом ваша среда Ruby настроена для загрузки исходного кода Sass как ASCII-8BIT, a.к. a. BINARY. Это, вероятно, потому, что вы либо проходите -Kn флаг для процесса Ruby или установка Encoding.default_external to Encoding::BINARY где-то в вашем коде перед загрузкой Sass. Отмените это, и Сасс должна работать.


Я не знаю точно суть проблемы, но, похоже, были некоторые проблемы с Ruby 1.9.0 (версия, доступная на apt для этого окна Ubuntu) и кодировка.

чтобы решить проблему, я использовал https://rvm.io который является помощником для загрузки и компиляции Ruby из Git, давая мне последнюю версию. После запуска этого sass компилируется отлично,и все отлично.


Это, вероятно, очевидно, но вы уверены, что ваш файл SASS закодирован UTF-8? Любой приличный текстовый редактор позволит вам конвертировать кодировки.