From: "NARUSE, Yui" Date: 2008-01-13T22:08:18+09:00 Subject: [ruby-dev:33077] Re: Encoding.compatible? and dummy encodings 成瀬です。 sheepman wrote: > ISO-2022-JP な文字列と EUC-JP な文字列が compatible と > なりますがこれは意図されたことでしょうか。 > > dummy エンコーディングだとこういう風になるものなのでしょうか。 > > $ cat t.rb > #-*- coding: euc-jp -*- > s = "漢字" > i = "漢字".encode("ISO-2022-JP") > p Encoding.compatible?(s, i) > p s + i > > $ ruby-1.9 -v t.rb > ruby 1.9.0 (2008-01-13 revision 0) [i686-linux] > # > "漢字\e$B4A;z\e(B" dummy encoding だからではなく、"\e$B4A;z\e(B" が 7bit ASCII の範囲に収 まっているからですね (rb_enc_str_asciionly_p)。ISO-2022-JP は常に 7bit なので EUC-JP だけでなく、Shift_JIS とも UTF-8 とも compatible になります。 これどうしましょうか。ESC/SI/SO があったらダメとかでしょうかねぇ・・・。 -- NARUSE, Yui DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA