Подтвердить что ты не робот

Сбои с ошибками с неверной последовательностью байтов в US-ASCII

После обновления до ruby ​​1.9.3 одно из моих приложений работает нормально, но второе, которое я пытаюсь преобразовать, не выполняется на этапе "активы: прекомпиляция", когда я пытаюсь развернуть с помощью capistrano. Вот stacktrace:

    rake aborted!
    rake aborted!
    invalid byte sequence in US-ASCII
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/trace_output.rb:16:in `block in trace_on'
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/trace_output.rb:14:in `map'
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/trace_output.rb:14:in `trace_on'
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:328:in `trace'
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:183:in `display_error_message'
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:169:in `rescue in standard_exception_handling'
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:159:in `standard_exception_handling'
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:88:in `load_rakefile'
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:72:in `block in run'
    /Users/george/.rvm/gems/ruby-1.9.3[email protected]/gems/rake-10.0.4/lib/rake/application.rb:160:in `standard_exception_handling'
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:70:in `run'
    /Users/george/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `eval'
    /Users/george/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `<main>'    

Я читал многочисленные сообщения и пробовал несколько предложений, но безрезультатно. Я попытался добавить следующее в верхнюю часть моего gemfile:

if RUBY_VERSION =~ /1.9/
  Encoding.default_external = Encoding::UTF_8
  Encoding.default_internal = Encoding::UTF_8
end

Но это не имело значения.

Я проверил переменные среды LANG и LC_ALL следующим образом

$ echo $LC_ALL
en_NZ.UTF-8

$ echo $LANG
en_NZ.UTF-8

Я боюсь, что я вообще не понимаю сообщение, и я не знаю, как определить файл, у которого есть проблема.

Я не могу запустить любую команду rake - она ​​дает ту же ошибку.

Обратите внимание, что я могу отлично запускать приложение в режиме разработки.

4b9b3361

Ответ 1

Добавить

#encoding: utf-8 

в первую строку вашего Rakefile (или любой другой файл имеет странные символы)

Ответ 2

Отслеживайте файлы грабли по ошибке , удаляя один за раз.

т.е. файлы под lib/tasks/delete_me.rake

Затем перезапустите или перезапустите, что когда-либо давало вам проблему. Как только проблема исчезнет выполните git diff, чтобы увидеть, какой файл был виновником, и с вашим любимым редактором измените кодировку файла.

т.е.,

vim lib/tasks/delete_me.rake : set fileencoding = utf-8 : WQ

Затем переверните, и вы вернетесь в сервис.

Ответ 3

Первый запуск

$ sudo gem install magic_encoding

Затем зайдите в папку и запустите

$ magic_encoding

Готово!

Ответ 4

Убедитесь, что вы не вводите свой файл в romaji (японский язык). Или настройку английского символа для какого-либо другого языка, отличного от US-ASCII.

Я попытался запустить rake db: seed и получил аналогичную ошибку. Оказывается, я набирал свой файл семени в японских римских персонажах. Я забыл изменить свой ввод на клавиатуре обратно в США, прежде чем работать над моим проектом.

Ответ 5

У меня была аналогичная проблема, и "ошибка" была по моему имени: она содержит не-US-ASCII char (ö). Это было напечатано в файле setup.rb и вызвало проблемы. Я изменил его на "oe", и он работал нормально.

Я пошлю E-Mail в битнами, чтобы он каким-то образом изменился

Ответ 6

Я получал подобную ошибку при попытке выполнить любую команду rake (я использую Rails 3.2 с Ruby 1.9.3). Я пробовал все решения выше, без каких-либо успехов. Позже я узнал, что я был особым камнем, который вызывал ошибку (в моем случае это был камень Faker, который был обновлен несколько дней назад). Я удалил драгоценный камень (он не использовался), и все стало работать! Итак, мой совет: если вы столкнетесь с такой проблемой, и ни одно из перечисленных здесь решений не будет выполнено, проверьте версию каждого драгоценного камня и посмотрите, обновлен ли какой-либо из них. Попробуйте удалить их или установить совместимую версию.