From: Tanaka Akira Date: 2007-12-25T13:12:14+09:00 Subject: [ruby-dev:32740] distinguish "w" and "w:euc-jp" EUC-JP な環境で、open に "w" を渡して変換が起きない場合と "w:euc-jp" を渡して変換が起きる場合の違いが external_encoding, internal_encoding で区別できません。 以下のように "w" だと \u6666 が変換されないまま 3byte で出力 されますが、 % ./ruby -e ' open("zz", "w") {|f| p f.external_encoding p f.internal_encoding f.print "\u6666" } p File.size("zz") ' # nil 3 "w:euc-jp" だと変換されて 2byte になります。 % ./ruby -e ' open("zz", "w:euc-jp") {|f| p f.external_encoding p f.internal_encoding f.print "\u6666" } p File.size("zz") ' # nil 2 しかし、extenral_encoding はどちらも EUC-JP で、 internal_encoding はどちらも nil です。 変換しないほうの external_encoding はなんで EUC-JP なんでしょ う? -- [田中 哲][たなか あきら][Tanaka Akira]