From: "NARUSE, Yui" Date: 2008-01-28T12:21:23+09:00 Subject: [ruby-dev:33439] Re: Win32OLE: set encoding to OLE string U.Nakamura wrote: > こんにちは、なかむら(う)です。 > > In message "[ruby-dev:33435] Re: Win32OLE: set encoding to OLE string" > on Jan.28,2008 11:38:16, wrote: > | > で、まあ、これはこれとして、wc2mbしないでそのままWSTRをUTF-16LE > | > に返すようなことも将来は考えるべきなんですかねえ。 > | > ruby本体側もですが。 > | > | 数年前からの懸案ですねぇ、欲しいと思います。 > > 互換性のことを考えるとあんまり簡単に変更はできないんですけど > ね。 > メソッドを分けるか、結果のencodingを何らかの形で指定できるよ > うにするかしないといけないとは思うんですが。 インスタンスを作る時にデフォルトを指定して振り分けとかなのですかね。 default_external が ASCII-8BIT なら multi byte で、それ以外は UTF-8 とか だと微妙かなぁ。 > | ところで、UTF-16LE でなく、pack あたりにつっこんで UTF-8 の方が使いやす > | かってりしませんか。 > > 個人的には、どっちでも同じ程度には使えない :) と思うので、ど > っちでもいいんですが、UTF-8の方がよっぽど有利とかじゃなければ、 > APIが返した形をそのままの方が実装する方は楽なのでそっちかな、 > と思います。 > # というわけで「よっぽど有利」の例は募集。 えー、そうですかー。 lead-byte と trail-byte が違うあたり、最高だと思うんですけれど。 2バイト目が壊れてる SJIS はもとより、EUC だってめじゃないですよ! ひらカタ漢字 3 byte ですけど! それはさておき、 * UTF-8 はビルトインエンコーディングだが、UTF-16LE は違う * UTF-8 は ascii compatible だが UTF-16LE は違う の、上二つだけでも「よっぽど有利」じゃないかなと思います。 * UTF-8 と UTF-16LE は情報を失うことなく、計算で変換可能 ですしね。 実装の方はとりあえず ole_utf82wc と ole_wc2utf8 を用意すればいいんでしょ うか。 他に影響範囲ありそうな気もしますがとりあえず用意しときます。 -- NARUSE, Yui DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA