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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

残念!まあ、ダイナーの名前はどうでも良いのじゃ!UTF-8万歳!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。