作者: Yukihiro Matsumoto
日時: 2008/1/02(01:54)
まつもと ゆきひろです

In message "Re: [TShack:269] Re: ちょっと整理してみますか"
    on Mon, 31 Dec 2007 17:01:58 +0900, davi <davi-1984@...> writes:

|>細かいこというと、UnicodeといってそれはUTF-8で表されているものを
|>扱えばいいのか、
|
|BOMなしリトルエンディアンのUTF-8(が一番普通ですよね?)が
|良いんじゃないでしょうか。但しサロゲート対応アリね。

この部分、ちょっと引っかかりました(木村さんとは別の意味で)。

BOMはともかく、UTF-8において

  * リトルエンディアン
  * サロゲート対応

とはどういう意味なんでしょうか。まず、第一にUTF-8はバイト単位
のエンコーディング方式ですから本来エンディアンは無関係のはず
です。なのに「リトルエンディアンのUTF-8」とはいったいどのよう
なものか。

さらにサロゲート対応というのも分かりません。サロゲート(ペア)
は16ビットしかなかったUCS2でBMP外の文字を表現するためにUCS2の
特定の領域に属する2 文字(4バイト)でBPM外の1文字を表現するエン
コーディング手法であると認識しています。UTF-8はBMP外でも
Unicodeのすべてのコードポイントを表現できますから、本来サロゲー
トは不要です。一部の処理系(やアプリケーション)では、サロゲー
トペアを構成する2文字を別々にUTF-8の文字として符号化した方式
を採用していますが、これはUTF-8に類似していてもUTF-8ではあり
ませんし、万が一そのまま外に流されると大変な迷惑です。

というようなことを踏まえると、

|BOMなしリトルエンディアンのUTF-8(が一番普通ですよね?)が
|良いんじゃないでしょうか。但しサロゲート対応アリね。

というのはUTF-8についてあまりご存じない状態での発言のように
聞こえるのですが、あるいは私の知らないなにかがあって、このよ
うなものが求められている可能性は否定できないので、この際、真
意をお聞きしておこうかなあと。

                                まつもと ゆきひろ /:|)