Проблемы с Rails 3.1, Ruby 1.9.2-p180 и UTF-8 - PullRequest
2 голосов
/ 21 июля 2011

У меня проблемы с персонажами UTF-8.Вот db / seeds.rb

User.create(username: 'eml', first_name: '****', last_name: '****äck', 
            email: 'somemail@example.com', password: 'asdasd')

Мой терминал (OSX 10.5.8) настроен на использование UTF-8, Rails (согласно application.rb) настроен на использование utf-8.Вот ошибка:

$ rake db:seed
rake aborted!
/Projects/***/db/seeds.rb:8: invalid multibyte char (US-ASCII)
/Projects/***/db/seeds.rb:8: invalid multibyte char (US-ASCII)
/Projects/***/db/seeds.rb:8: syntax error, unexpected $end, expecting ')'
...ame: '****', last_name: '****äck', 
...                               ^

Tasks: TOP => db:seed
(See full trace by running task with --trace)

1 Ответ

5 голосов
/ 21 июля 2011

Добавьте эту строку # encoding: utf-8 в начало файла seeds.rb, и для любого файла ruby ​​используйте специальные символы

Я рекомендовал вам добавить Encoding.default_external = "UTF-8" в config.ru файл и в config/environment.rb для шаблонов кодирования

И, наконец, вы можете добавить "".force_encoding('UTF-8) к вашей строке, которая создает проблемы.

Обновление:

Добавить полную строку на config.ru:

# Not override -E option or LANG and apply only for ruby > 1.9<br> if Object.const_defined?(:Encoding) && !ENV['LANG'] && !ENV['RUBYOPT'].include?('-E')<br> Encoding.default_internal = 'utf-8'<br> Encoding.default_external = 'utf-8'<br> end

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...