Ruby 1.9.2 и Rails 3.0 UTF-8 сумасшествие - PullRequest
2 голосов
/ 08 июля 2011

Мой предыдущий вопрос получен ответ, но есть еще несколько вещей, которые я не понимаю.

У меня есть файл yaml, который содержит поле с символом utf-8:

:name: O\xE2\x80\x99Reilly 

Когда я загружаю yaml в irb:

>puts name.encoding => UTF-8
>name => "O\xE2\x80\x99Reilly"
>puts name => O’Reilly

Когда я загружаю yaml в Rails:

>puts name.encoding => UTF-8 
>puts name => Oâ[80][99]Reilly
>puts name.force_encoding('utf-8') => Oâ[80][99]Reilly
>puts Iconv('iso-8859-1', '', name) => O’Reilly

Q3: Почему рельсы печатают его начальный utf-8 строка, как будто это iso-8859-1, а строка преобразуется в iso-8859-1, как будто это utf-8?

Ответы [ 2 ]

1 голос
/ 08 июля 2011

Ваш config/application.rb файл в рельсах, вероятно, имеет это:

config.encoding = "utf-8"

Это только ответ на первый вопрос и может иметь или не иметь никакого отношения к следующим 2:)

0 голосов
/ 09 июля 2011

В конечном итоге это было вызвано загрузкой сгенерированного syck файла с psych.Загрузка с помощью syck решила проблему.Я подробно рассказал, как в ответе на мой предыдущий вопрос .

...