MySQL、UTF-8、および Rails 3 アプリケーションのさらに別のエンコーディングの問題。
最近、コードを Rails 2 から Rails 3 に移行しました。MySQL とmysql2
gem を使用しています。\xC3\x9F
問題は、古いデータベースには、分音符付きの oなど、対応する htmlentity の代わりにいくつかの utf-8 文字を含むコンテンツがあったことです。
これらの文字列は、Web サイトに入力する必要があるいくつかの文字列の YAML シリアル化として用意されています。問題は、データベースからのレコードが ActiveRecord オブジェクトにロードされるときに、これが奇妙な文字で行われるため、Web 上で非常に厄介な表示になることです。たとえば、などのようにß
表示さÃ
れます。
Rails 3 の新しいエンコーディング マジックで少し遊んで、force_encoding
とencode
メソッドのさまざまな組み合わせを試してみましたが、うまくいきませんでした。
記録として、mysql は次の 2 行で開始されます。
character-set-server=utf8
collation-server=utf8_unicode_ci
何が間違っているのか、なぜ YAML がエスケープされた文字を正しく読み取らないのか、問題を解決するために何ができるのかについて何か考えはありますか?
乾杯