Обновлен до Rails 3 и Ruby 1.9 и данных Unicode в базе данных Postgres, теперь возвращающихся как ASCII (потенциальная ошибка?) - PullRequest
1 голос
/ 18 декабря 2010

Я столкнулся с действительно странным явлением после обновления с Rails 2.3 / Ruby 1.8 до Rails 3 / Ruby 1.9. Как я уже упоминал в заголовке, я использую Postgres вместе с pg gem 0.10.0.

Когда я вызываю строковые или текстовые поля модели, содержащие Unicode, она работает правильно, и они возвращаются с кодировкой UTF-8.

Тем не менее, я также использую сериализованные хэши в ряде моделей, и всякий раз, когда я звоню, чтобы прочитать их содержимое (которое работало до обновления), я получаю следующее удивительное поведение:

  1. Если содержимое содержит данные Unicode, оно возвращается как ASCII и отображается как экранированные символы.
  2. Если содержимое содержит данные ASCII, оно возвращается как UTF-8 (правильно) и отображается правильно.

Я могу просто перекодировать строки Unicode-return-as-ASCII обратно в UTF-8, и все будет работать нормально. Тем не менее, это определенно хак, и мне это не кажется хорошим подходом.

Есть ли способ заставить корректно отображать сериализованные поля UTF-8? Если это где-то ошибка, есть идеи, где и если она уже известна?

1 Ответ

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