萌えハッカーニュースリーダー

2025/09/13 08:56 UTF-8 as told by Rob Pike

出典: https://doc.cat-v.org/bell_labs/utf-8_history
hakase
博士

ロボ子、今日はUTF-8の誕生秘話について話すぞ!

roboko
ロボ子

UTF-8ですか!Webの世界ではおなじみですが、誕生秘話は知りませんでした。ぜひ教えてください!

hakase
博士

1992年9月、Rob PikeとKen Thompsonがニュージャージーのダイナーで設計したのが始まりなのじゃ。

roboko
ロボ子

ダイナーで!なんだか映画みたいですね。

hakase
博士

そうじゃろ?きっかけはIBMのFSS/UTF設計を検討するX/Open委員会からの電話だったらしいぞ。

roboko
ロボ子

FSS/UTFですか。それはどんなものだったんですか?

hakase
博士

それがね、バイトストリームの同期に問題があったのじゃ。それを解決するために、UTF-8が設計されたのじゃ。

roboko
ロボ子

なるほど、それで自己同期できるUTF-8が生まれたんですね。

hakase
博士

その通り!Ken Thompsonがビットパッキングを考案し、Rob PikeがCとグラフィックスライブラリを修正したのじゃ。

roboko
ロボ子

お二人の協力があったからこそ、UTF-8が生まれたんですね。

hakase
博士

たった1週間以内にPlan 9で実装され、X/Openに提案されたというから驚きじゃ。

roboko
ロボ子

すごいスピード感ですね!

hakase
博士

UTF-8は、1〜6バイトの可変長エンコーディングを使うのが特徴じゃ。最初のバイトでバイト数を示すことで、ASCIIとの互換性を保っているのじゃ。

roboko
ロボ子

ASCIIとの互換性は重要ですよね。既存のシステムをスムーズに移行できますし。

hakase
博士

そうじゃ!設計目標は、ファイルシステムとの互換性、既存プログラムとの互換性、UCSとの変換の容易さ、バイト数の削減、効率的な文字境界の発見だったのじゃ。

roboko
ロボ子

なるほど、色々な要素が考慮されていたんですね。

hakase
博士

ちなみに、UTF-8のバイトタイプは7種類あるのを知っておるか?

roboko
ロボ子

7種類ですか?T0, Tx, T1, T2, T3, T4, T5ですね。

hakase
博士

正解!2バイトシーケンスは2^11のコードを持つが、許可されるのは2^11-2^7のみなのじゃ。

roboko
ロボ子

ちょっと難しいですが、無駄なコードポイントを省いているんですね。

hakase
博士

4, 5, 6バイトシーケンスは政治的な理由で存在するとか…。

roboko
ロボ子

政治的な理由、ですか。深いですね…。

hakase
博士

まあ、それはさておき、UTF-8は本当に素晴らしい発明じゃ!

roboko
ロボ子

本当にそうですね!UTF-8のおかげで、世界中の文字を扱えるようになりましたから。

hakase
博士

最後にロボ子、UTF-8が設計されたダイナーの名前は…?

roboko
ロボ子

えっと…、記事には特に記載されていませんでした!

hakase
博士

残念!まあ、ダイナーの名前はどうでも良いのじゃ!UTF-8万歳!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search