まとめの限定公開に「リンク限定」が追加されました。URLを伝えてまとめを共有しよう!

@MnjaMnia氏のISO/IEC 10646に至る文字符号の歴史

文字コード規格には、一部の文字を表現するのに precomposed(合成ずみの文字を使う) とcombining(合成して使う)の2つの方法があります。ISO/IEC 10646/Unicodeはその両方を許容しますが、そこに至る歴史を@MnjaMnia氏が簡単にまとめてくれました。
プログラミング 文字 Unicode 文字コード
10601view 1コメント
17
tomo.(むにゃむにゃ) @MnjaMnia
(ISO/IEC 10646 の弁護をするなら、Unicode って自分で勝手に決めた領域だけを面倒見れば良いのに対して、ISO や JIS 等の公的標準は引用関係の網の目の中で矛盾を来さないよう他の規格に悪影響をもたらさないようにいじらないといけないので難易度が違う気が)
tomo.(むにゃむにゃ) @MnjaMnia
(あと、歴史的には結合文字という概念は ISO/IEC 10646 より前からあって、結合文字を使った文字符号から precomposed なのにしようという流れの中で 8859 シリーズが生まれ、その延長上で 10646 作ろうって話が出てきたみたいだし…)
tomo.(むにゃむにゃ) @MnjaMnia
(あと、伝統的には文字符号の標準って受信装置と送信装置の仕様を定義するためのもので、『バイト列蓄積装置』や『バイト列変換装置』みたいなのは情報交換用符号ではなく内部コードの仕事だと考えられていたと思われるけど、XML の登場等でその状況がこの10年余りで大きく変わった)
tomo.(むにゃむにゃ) @MnjaMnia
(ISO/IEC 4873 に Composite graphic characters というのを見つける。)
tomo.(むにゃむにゃ) @MnjaMnia
(ただ、ISO/IEC 4873 は combining character を定義してないので、UCS のとは違って、ISO 6429 の制御機能を使って合成するという古の技術っぽい。)
tomo.(むにゃむにゃ) @MnjaMnia
(ちなみに、ISO/IEC 10646 も制御文字には通常 ISO/IEC 6429 使うからこの composite graphic characters は UCS でも、規格上、利用可能な気がするw)
tomo.(むにゃむにゃ) @MnjaMnia
(ISO/IEC 6937 では combining character という表現はなくて non-spacing diacritical mark という表現になってる。)
tomo.(むにゃむにゃ) @MnjaMnia
(また、basic Latin 文字に non-spacing diacritical mark が続いたものを accented letter と呼んでる。また、repertoire や graphic character には accented letter も含まれている)
tomo.(むにゃむにゃ) @MnjaMnia
(accented letter にも name が定義されている(というか、name が存在しないビット組み合わせ列を使っちゃだめっぽい)。なお、初版 (ISO 6937/1,2:1983) では LATIN ってのが付いてなかったらしい(過去の版との変更点の説明によれば))
tomo.(むにゃむにゃ) @MnjaMnia
(ISO/IEC 2022 の重複符号化禁止の原則は名前ベースなので、規格体系上、ISO/IEC 6937 の accented letter は ISO/IEC 8859 シリーズのような precomposed な文字と同一視されることになってたっぽい。)
小形克宏 @ogwata
@MnjaMnia ISO/IEC 6937:2001の規格票があったんでパラパラ読んでみたんですけど、7/8ビットで複数のレパートリを符号化する規格のようですね。表1をみると、precomposed とcombining の折衷(両方あり)みたいに見えますが、何に使ったのかな。
tomo.(むにゃむにゃ) @MnjaMnia
(本棚を漁ってたら ISO/IEC TR 15285 というのを発見した。どうもこれは Unicode の character glyph model について述べたものっぽい(というか、これと既存の文字やフォント関連の標準とのつじつまを合わせようとした?))
tomo.(むにゃむにゃ) @MnjaMnia
(この中で、composition という用語が出てきた。Composition は content-based processing と appearance-based processing の両方を兼ねるものとされてるが、基本的にグリフ選択の文脈の中で説明されてるっぽい)
tomo.(むにゃむにゃ) @MnjaMnia
この時代の文字符号は ISO/IEC 2022 に基づいてるので、みんなそうなってます。ただ、基本的には 8bit で使うことを想定してたみたいです。 RT @ogwata: ISO/IEC 6937:2001の規格票があったんでパラパラ読んでみたんですけど、7/8ビットで複…
tomo.(むにゃむにゃ) @MnjaMnia
本来は combining 型の文字符号であったようです。後に、データ処理の世界でそれが嫌われて 8859 みたいなのが出てきて、それとの対応を書いて行った結果かなと RT @ogwata: …precomposed とcombining の折衷(両方あり)みたいに見えますが…
tomo.(むにゃむにゃ) @MnjaMnia
(拡張ラテン文字用符号は ISO 4837 で 8bit 符号の枠組ができ、ISO 6937 のような combining 型のものが登場して、そしてコンピューター屋さんに嫌われw、ISO 8859 シリーズが登場し、ISO 10367 で両者のつじつまを合わせ、…)
小形克宏 @ogwata
@MnjaMnia ありがとうございます。ちょっと調べたら、芝野さんの解説がありました。「JIS X 0221(ISO/IEC 10646)の目指すもの」 http://t.co/tp2ToK5lof
tomo.(むにゃむにゃ) @MnjaMnia
(でもって、やっぱ precomposed で多バイトで多言語な文字符号を作ろうとしたのが ISO/IEC 10646 で、1984年にその標準化の決定がなされたそうです。)
tomo.(むにゃむにゃ) @MnjaMnia
(1985〜1986年にかけて ISO 2022 との互換性の高い体系(A)と非互換なバイナリー符号(B)の2つの案が検討され、1987年にA案が採択されたけど、漢字入れるには16bitじゃ足りないねってことになって、1990年まで32bit化が議論されたとのこと)
小形克宏 @ogwata
「JIS X 0221(ISO/IEC 10646)の目指すもの」 http://t.co/tp2ToK5lof /ISO/IEC 10646以前の文字コードの歴史が整理されてますね。そういえば、この記事を読んでISO/IEC 6937を買ったのでした。簞笥の肥やしですがw
tomo.(むにゃむにゃ) @MnjaMnia
(で、1990年にそれが ISO/IEC DIS1 10646 としてまとまったのだけど、アメリカの研究者や中国での漢字標準化の仕切り直しの流れが合流して(?)1990年に Unicode コンソーシアムが設立され Unicode 1.0 ができてどうしようという話に)
tomo.(むにゃむにゃ) @MnjaMnia
(ちなみに、Unicode 1.0 は今の UCS/Unicode と違ってて、漢字用領域は 0x4000〜0xEFFF になってた。これが後に、U+4E00 に移動した後、『ハングルの大移動』があって、U+3400〜 がハングルから漢字に変わったのはご存知の通り)
tomo.(むにゃむにゃ) @MnjaMnia
(それはさておき、ラテン文字用符号の標準化は ISO 6937 のような可変長の合成型符号 → ISO 8859 のような固定長の1バイト合成済み符号 → 多バイト固定長合成済み符号 という風に進んでたのに、Unicode はちゃぶ台返しをしたっぽい)
tomo.(むにゃむにゃ) @MnjaMnia
(なので、ISO/IEC 10646 の標準化では combining 派と precomposed 派がバトルを繰り広げた結果、両者を折衷したものになったけど、その後もバトルは続き、技術も変化して、最終的に precomposed 派が負けて今日に至る?w)
tomo.(むにゃむにゃ) @MnjaMnia
(ISO/IEC 10646 と Unicode を一致させることになったのは1991年前半のことらしい。IRG ができて統合漢字の開発が決まったのは有名だけど、precomposed 派が反撃して、ベトナム語用のラテン文字や拡張キリル文字等が入ったのもこの頃らしい)
残りを読む(20)

コメント

小形克宏 @ogwata 2013年4月5日
まとめを更新しました。
ログインして広告を非表示にする
ログインして広告を非表示にする