Unicode結合ダイアクリティカルマークの解説
Unicode結合ダイアクリティカルマーク(U+0300–U+036F)が基底文字をどのように変更し、なぜZalgoテキスト効果を可能にするかを深く掘り下げます。
Fundamentals
詳細な説明
Unicodeの結合ダイアクリティカルマーク
Unicode標準は結合ダイアクリティカルマークを、単独では存在せず先行する基底文字を変更する文字として定義しています。主要ブロックはCombining Diacritical Marks(U+0300–U+036F)で、112文字を含みます。
結合文字の仕組み
Unicodeではテキストはコードポイントのシーケンスとして保存されます。レンダラーが結合マークに遭遇すると、先行する基底文字に視覚的に付加します:
コードポイント: U+0061 U+0301
レンダリング: á(aにアキュートアクセント)
結合マークのカテゴリ
| カテゴリ | 範囲 | 位置 |
|---|---|---|
| 上方向 | U+0300–U+0315 | 文字の上部 |
| 下方向 | U+0316–U+0333 | 文字の下部 |
| オーバーレイ | U+0334–U+0338 | 文字を貫通 |
| 拡張 | U+0339–U+036F | 様々な位置 |
Zalgoがこれを悪用する理由
Unicode仕様は基底文字に続けられる結合マークの数に厳密な上限を定義していません。レンダラーはすべてを表示しようとし、視覚的に積み重ねます。各方向に10個以上のマークを追加すると、Zalgoテキスト特有のオーバーフローと歪みが生じます。
ユースケース
結合ダイアクリティカルマークの知識は、テキスト処理システム、入力バリデーション、コンテンツモデレーションフィルター、ソフトウェアアプリケーションの国際化(i18n)サポートを構築する開発者にとって重要です。