Почему Rails 3 подходит для кодировки символов UTF-8? - PullRequest
0 голосов
/ 24 февраля 2012

Я только начал работу над новым приложением Rails, используя яркую и блестящую новую версию Rails, 3.2.1. Раньше я использовал только до версии 3.0.9. Прежде чем я опишу свою ошибку, позвольте мне знать, что я использую версию Ruby ruby 1.9.2p290 (2011-07-09) [i386-mingw32] в 32-битной Windows 7. Я не изменил свою версию Ruby в последнее время. Я использую Notepad ++ v5.9.3 и не (намеренно) не изменил никаких настроек по умолчанию.

Когда я впервые запустил свое новое приложение, я получил странное сообщение:

ActionView::WrongEncodingError in Index#index

Your template was not saved as valid UTF-8. Please either specify UTF-8 as the encoding for your template in your text editor, or mark the template with its encoding by inserting the following as the first line of the template:

# encoding: <name of correct encoding>.

Я не понимаю, почему я получаю эту ошибку внезапно. Это часть изменений, внесенных в Rails 3.2.1? Это легко исправить, перейдя в Notepad ++ и используя пункт меню «Кодирование» «Преобразовать в UTF-8», но, как я уже сказал, мне никогда не приходилось делать это раньше.

Другая странность в том, что даже файлы, которые генерирует Rails, генерируются с кодировкой ANSI, когда я использую генератор. В целом, я запутался и хочу убедиться, что я использую хорошие методы программирования.

Ответы [ 2 ]

2 голосов
/ 24 февраля 2012

Является ли это частью изменений, внесенных в Rails 3.2.1? Это легко исправить, перейдя в Notepad ++ и используя пункт меню «Кодирование» «Преобразовать в UTF-8», но, как я уже сказал, мне никогда не приходилось делать это раньше.

Да. Rails 3.0+ (я думаю) требует сохранения всех шаблонов в кодировке UTF-8. Вам нужно сохранить файл как UTF-8. Если это по-прежнему не работает, установите кодировку явно, добавив в первую строку ваших файлов .rb следующее:

# encoding: utf-8

Добавьте это в первую строку ваших .erb шаблонов:

<%# encoding: utf-8 %>

См. этот связанный вопрос , а эту похожую проблему . Звучит так, будто настройки кодировки вашего редактора изменились с тех пор, как вы создали файлы.

Другая странность в том, что даже файлы, которые генерирует Rails, генерируются с кодировкой ANSI, когда я использую генератор. В целом, я запутался и хочу убедиться, что я использую хорошие методы программирования.

Это довольно странно, и я не уверен, что у меня есть для этого хорошее предложение, кроме того, что я пытаюсь добавить Encoding.default_external = "UTF-8" к вашим config.ru и config/environment.rb файлам.

0 голосов
/ 28 марта 2014

Я безуспешно пробовал метод encoding: utf-8, но решил проблему, когда изменил кодировку с помощью Notepad ++ .Спасибо!

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