Unicodeにおける合成済み文字とは
Unicodeにおける
合成済み文字とは、単一の符号位置を持ちながら、基底
文字と結合
文字の組み合わせに分解できる
文字のことです。これは
分解可能な文字とも呼ばれます。例えば、é(
アキュート・アクセント付きの小
文字のラテン
文字のe)は、合成済み
文字の一例です。
合成済み文字と分解された文字列
合成済み
文字は、
Unicodeでは基底
文字と結合
文字の組み合わせと同等とみなされます。例として、
スウェーデン語の姓「Åström」を見てみましょう。
合成済み文字: Åström (U+00C5 U+0073 U+0074 U+0072 U+00F6 U+006D)
分解された文字列: Åström (
U+0041
U+030A
U+0073
U+0074
U+0072
U+006F
U+0308
U+006D)
これらの2つの表現は、見た目上は同じであり、等価とされます。しかし、実際には、すべての環境で分解された
文字が正しく表示されるとは限りません。
表示上の問題
一部の
Unicode実装では、分解された
文字が正しく表示されないことがあります。
ダイアクリティカルマークが無視されたり、
文字化けしたりするケースも存在します。これは、使用しているフォントにすべての
文字が含まれていないことが原因です。そのため、一部のアプリケーションでは、分解された
文字を等価の合成済み
文字に置き換えることで問題を解決しようとします。
しかし、合成済み
文字にも問題がないわけではありません。例えば、
インド・ヨーロッパ祖語の「犬」を意味する単語「ḱṷṓn」は、以下のように表現できます。
合成済み文字: ḱṷṓn (U+1E31 U+1E77 U+1E53 U+006E)
分解された文字列: ḱṷṓn (
U+006B
U+0301
U+0075
U+032D
U+006F
U+0304
U+0301
U+006E)
合成済み
文字では、
ダイアクリティカルマーク付きの
文字が
文字化けし、別のフォントのように表示されることがあります。一方、分解された
文字列では、
ダイアクリティカルマークが認識されなくても、少なくとも基底
文字は正しく表示されます。
用語について
合成列(Composite Sequence): UCS(ISO/IEC 10646)における用語で、Unicodeの結合文字列と同義です。これは基底文字と結合文字の組み合わせを指します。
結合文字列(Combining Character Sequence): Unicodeにおける用語で、基底
文字と結合
文字の組み合わせを指します。
Unicodeでは、合成済み
文字への変換を「合成」と呼びますが、
UCSではその逆の分解を指します。
まとめ
合成済み
文字は、
文字の表現を簡略化するための便利な手段ですが、表示上の問題や、使用するフォントによっては
文字化けを引き起こす可能性があります。そのため、
Unicodeの知識を十分に理解し、適切な
文字表現を選択することが重要です。
参考資料
The Unicode Standard, Version 5.2: Conformance
Aaron Weiss: Composite and Precomposed Characters
MSDN: Defining a Character Set
関連項目
デッドキー
コンポーズキー
結合
文字
Unicodeの等価性
複雑なテキスト配置
Unicodeの互換文字
Unicode正規化
外部リンク
*
Free Idg Serif at the Wayback Machine