[ruby-dev:31727] Re: string literal encoding

From: Yukihiro Matsumoto <matz@...>
Date: 2007-09-03 14:45:53 UTC
List: ruby-dev #31727
まつもと ゆきひろです

In message "Re: [ruby-dev:31724] Re: string literal encoding"
    on Mon, 3 Sep 2007 19:42:11 +0900, "NARUSE, Yui" <naruse@airemix.com> writes:

|> |もしすべてUTF-16で実装するなら、String#encodingは常に"UTF-16"を
|> |返すんでしょうか。
|> 
|> そうだと思います。

|str1 = b"\x82\A0" # "あ" in Shift_JIS
|str1.encode("Shift_JIS")
|str2 = b"\xA4\A2" # "あ" in EUC-JP
|str2.encode("EUC-JP")
|p str1 == str2 # Ruby1.9=>false, JRuby=>true
|って、なりませんか。

ややや、encode()は「encodingをEUC-JPにするように変換する」も
のですから、JRubyでもencode("EUC-JP")の結果は"EUC-JP"ですね
(上記の「常に」と矛盾しますが)。あるいは、そもそもJRubyではバ
イナリ→EUC-JPには対応しないとしてエラーにするかもしれません。

少なくとも上記に示されるような「EUC-JP であるとみなして
UTF-16に変換する」という挙動はしないと思います。

In This Thread