質問する
1344 次
1 に答える
0
組み込みのString#force_encodingメソッドは、マルチバイト シンボルを置換ではなく、それ自体の表現に変換するため、それを使用することはできません。
str = "“ ” ’"
str.force_encoding("ISO-8859-1")
#=> "\xE2\x80\x9C \xE2\x80\x9D \xE2\x80\x99"
String#encodeを試すこともできますが、無効/未定義のすべての文字を個別に置き換えることはできません。
str = "“ ” ’"
str.encode("ISO-8859-1", :invalid => :replace, :undef => :replace, :replace => "")
#=> " "
str = "“ ” ’ €"
str.encode("ISO-8859-1", :invalid => :replace, :undef => :replace, :replace => "'")
#=> "' ' ' '"
ほとんどの場合、Unicode マルチバイト文字と対応する ASCII 文字との関係を維持するライブラリを作成または検索して、それを使用する必要があります。
于 2012-05-26T03:39:45.820 に答える