Rails и кодировка Utf-8 - PullRequest
       1

Rails и кодировка Utf-8

0 голосов
/ 26 октября 2011

Я знаю, что это самая распространенная проблема в истории программирования, но я верю, что я попробовал все это сейчас, но я все еще получаю: incompatible character encodings: UTF-8 and ASCII-8BIT в моем файле pages # index.html.

IЯ использую Ruby 1.9.2 и Rails 3.1.1.

Это то, что я проверил / протестировал / установил:

  • В файле database.yml установите кодировку: utf8

    разработка: адаптер: mysql кодировка: utf8 переподключение: ложь база данных: пул разработки kopa_: 5 имя пользователя: пароль root: хост: localhost

  • Проверено с помощью Notepad ++, что текстовый файл (s) значение in закодировано в utf-8

  • Проверено в браузере запросов mysql, что база данных установлена ​​в utf-8, поэтому столбцы
  • я пробовал с # coding: utf-8 в контроллере, связанном с представлением, на которое я пытаюсь посмотреть.
  • Я поместил SET NAMES utf8 в mysql
  • Я попробовал Encoding.default_internal = Encoding :: UTF_8 вenvironment.rb, а также Encoding.default_external = Encoding :: UTF_8
  • У меня есть config.encoding = "utf-8" в application.rb
  • У меня есть Googled
  • Я прочитал http://www.joelonsoftware.com/articles/Unicode.html
  • Я пробовал и Notepad ++, иRubyMine
  • Добавление .force_encoding работает, но делать это очень неудобно

Забавно, что если я установлю index.html.erb в ANSI, он будет жаловаться на application.html.erb не имеет правильной кодировки (а не index.html.erb).Я не знаю, что это значит, но это заставляет меня думать, что с редактором есть что-то подозрительное.

Я помню, что при использовании электронного текстового редактора я мог установить две вещи (со ссылкой на кодировку):кодирование и что-то еще.Это «еще», я не помню, что это было, и у меня больше нет е.

Что касается сообщения об ошибке, правильно ли я понимаю, что первое упомянутое означает кодирование базы данных, а второеRails (?) кодировка?Я также видел противоположное сообщение об ошибке (сначала ASCII, а потом UTF-8).

Редактировать: Я погуглил еще немного сегодня утром и обнаружил, что с mysql-gem что-то не так.Статьи были немного устаревшими, и я попытался найти там решения (например, пробовать mysql2 & ruby-mysql), но безуспешно.

У меня нет идей.Как насчет тебя?

Ответы [ 2 ]

5 голосов
/ 29 октября 2011

Я не мог решить эту проблему.Я «решил» это, купив Mac, и продолжаю разрабатывать на нем свои приложения Rails ...

Кодирование - я: 1-0

2 голосов
/ 26 октября 2011

Мне удалось преодолеть эту ошибку, но, к сожалению, я получил ту же ошибку в операторе yield (application.html.erb). Через полчаса я сдался.

Я сохранил некоторые файлы erb из utf-8 с спецификацией в utf-8 без спецификации. Смешивание кодировки не очень хорошо, и я думаю, что это причина ваших ошибок.

Я также нашел файлы с различным окончанием строки: lf или crlf.

Если вы разрабатываете в Windows, я рекомендую вам установить виртуальный ящик для настройки виртуальной машины Linux. Вы можете получить доступ к файловой системе через Samba, для меня она работает довольно хорошо.

Кроме того, настройте текстовый редактор на использование utf-8 без спецификации и конца строки.

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