2

前の質問には答えましたが、理解できないことがいくつかあります。

utf-8 文字のフィールドを含む yaml ファイルがあります。

:name: O\xE2\x80\x99Reilly 

irb で yaml をロードすると、次のようになります。

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

Rails で yaml をロードすると、次のようになります。

>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: Rails は、最初の utf-8 文字列を iso-8859-1 であるかのように出力し、文字列を iso-8859-1 に変換したものを utf-8 であるかのように出力するのはなぜですか?

4

1 に答える 1

1

Railsのconfig/application.rbファイルにはおそらく次のようなものがあります。

config.encoding = "utf-8"

これは最初のQに対する答えにすぎず、次の2との関連性がある場合とない場合があります:)

于 2011-07-08T18:58:59.753 に答える