パスワードを忘れた? アカウント作成
506609 journal

yasuokaの日記: UTF-16の誕生 4

日記 by yasuoka
XMLと文字メーリングリストを読んでいたところ、『[XML MOJI 01712] Vistaで化ける字,化けない字』の以下の部分にひっかかった。

たとえば「16ビットのコードを2つ組み合わせることで急場をしのいだ」といった書き方は、いかにも行き当たりばったりでサロゲートペアを作ったように見えますが、実際には最初から計画的にサロゲート用のコードはリザーブしてあったわけですよね。

「最初から計画的にサロゲート用のコードはリザーブしてあった」というのは、どう考えても嘘だ。この際だからUTF-16の誕生に関して、私の知る限りのことを記しておこうと思う。

Joseph Dermansly BeckerがJTC1/SC2/WG2に『Proposal for Extended UCS-2 being also a Proposal for Extended Unicode』を提出したのは、1993年4月のことだ。後にJTC1/SC2/WG2 N883と呼ばれるこの文書において、Beckerは、High Half Zoneとして2C00~2FFFを、Low Half ZoneとしてDC00~DFFFを用いた、UCS-2の拡張法を提案している。この拡張法においては、「2C00 DC00」がUCS-4のU-2C00DC00にダイレクトに対応するというものであった。Beckerのこの提案は、1993年5月24~25日のJTC1/SC2/WG2アテネ会議で、ケチョンケチョンにけなされることになる。曰く、2C00~2FFFはA-Zoneなのに、そんな拡張法に使うのはおかしい。曰く、「2C00 DC00」をU-2C00DC00に対応させると、拡張版UCS-2が飛び飛びにUCS-4に対応することになって、そんなのISO/IEC 10646アーキテクチャの破壊だ。曰く、そもそもUCS-2は16ビットのコードなのに、それを「拡張」するなんて自己矛盾、だったらUCS-4を使えばいいだろう…。

しかし、Beckerはメゲることなく、『Proposal for UCS-2E (Modified Proposal for Extended UCS-2)』をJTC1/SC2/WG2に再提出する。1993年11月1~5日のJTC1/SC2/WG2ワシントンD.C.会議では、このUCS-2Eが徹底的に議論された。High Half ZoneはD800~DBFFに変更されていたのでA-Zoneの問題はいいとして、「D800 DC00」はやはりU-00010000に対応させないとJTC1/SC2/WG2としては収まりがつかない。しかもUCS-2の「拡張」というのは、やはりどう考えても矛盾しているので、ここは、UCS Transformation Formatの一種、ということで妥協してもらうしかないだろう。この瞬間にUCS-2Eは、UTF-16となったのである。

もし「最初から計画的にサロゲート用のコードはリザーブしてあった」と言うのなら、High SurrogateのD800~DBFFがどう「リザーブ」してあって、なぜそれがBeckerの最初の提案にはなかったのか。ちゃんとした資料をぜひ示してほしい。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • UTF-16 (スコア:2, 参考になる)

    by Anonymous Coward on 2007年01月01日 15時16分 (#1085403)
    芝野です。 もともとUnicodeは(TRONコードと同様に)2バイトコードだけで十分と主張していたのですが,その後,2バイトで足りなくなって,UCS2Eを提案します。日本は,このUCS2Eが2バイトコードを二つ並べて用い,そのため,4バイトコードとしては,串刺しにされ,実質上,4バイトコードがなくなることから強く反対し,UTF-16を提案しました。 最終的には,93年のワシントンSC2総会中に,ホテルで夜,Mark Davis,Asmus Freytagと私とで話し合い,現行のUTF-16の方式とすることにしました。
    • by yasuoka (21275) on 2007年01月01日 18時18分 (#1085423) 日記
      えっと、それよりだいぶ前(BeckerがN883を提案するよりも前)には、A000~DFFFの16384コードポイントをSwap Zoneとする(どうも、エスケープシーケンスみたいなもので切り変えるつもりだったらしい)っていうアイデアもUTC内にはあった、というのを耳にしたのですが、JTC1/SC2/WG2のドキュメントには見当たりませんでした。芝野さん、このあたり何かご存知ありません?
      親コメント
      • Re:Swap Zone (スコア:1, 参考になる)

        by Anonymous Coward on 2007年01月02日 0時47分 (#1085575)
        芝野です。
        SC2に出されたのは,UCS2Eからです。UTCはメンバではありませんので,UTC内部の話しは知りません。
        親コメント
    • by oguma (17986) on 2007年01月05日 17時35分 (#1086840)
      もともとUnicodeは(TRONコードと同様に)2バイトコードだけで十分と主張していた

       ども、TRON屋です。
       少なくともTRONでは「2バイトコードだけで十分」と主張したことはないと思いますが。
       手持ちの1987年の資料でも、不定長の言語指定コードによる面切替え方式が規定されています。
       実現されているかどうかについては、アレですけど(苦笑)。

      --
      Nullius addictus iurare in verba magistri
      親コメント
typodupeerror

ハッカーとクラッカーの違い。大してないと思います -- あるアレゲ

読み込み中...