From: Yukihiro Matsumoto Date: 2008-01-07T18:41:44+09:00 Subject: [ruby-dev:32955] Re: Shift_JIS variants and UTF-16 support まつもと ゆきひろです In message "Re: [ruby-dev:32953] Re: Shift_JIS variants and UTF-16 support" on Mon, 7 Jan 2008 18:20:23 +0900, Martin Duerst writes: |transcode ではそのうち実装される予定なので、String#encoding |から 'UTF-16' とか返ってくることにはなるだろうが、鬼車でサポート |されても、Ruby の Encoding としてフルにさっポートされる予定が |無いのはまつもとさんの意見です。 おそらく私のメールの「second class citizen」という言葉から 「フルにサポートされる予定がない」と思われたのだと思います。 このsecond class citizenという表現の意図は、「リテラルがない」 という意味です。現時点ではスクリプトエンコーディングとして byte列的にASCIIコンパチブルでないエンコーディングに対応するの は大変なので、当面は対応しないでおこうと思っています。 ですから # coding: UTF-16BE のような表現とか、BOMによる指定とかは許す予定はありません。 でも、誰かがパッチを書いてくれたりするといきなりひっくり返っ たりするわけですが。 |すなわち、 |"中村".transcode('UTF-16').length 見たなものは 2 のではなく |4 を返す等、UTF-16 は内部 Encoding としては使えないということだと思います。 とはいえ、UTF-16にフルサポートしないというのは、UTF-16エンコー ディングはダミーとするわけではありません。鬼車がUTF-16エンコー ディングに対応しているので、ダミーにする理由はあまりないかな あと思います。ので、 "中村".transcode('UTF-16LE').length は2を返すようにできると思います。エンディアンが指定されてい ない"UTF-16"を使えるようにするかどうかは決めていませんが、お そらくはプラットフォームのエンディアンを見て、別名として定義 するのではないかと思います。 まつもと ゆきひろ /:|)