他の文字コードへの変換

他の文字コードとの変換は1対1ではない

円記号と同じように、Unicode 上ではそれぞれ個別に扱われている複数の文字が、Unicode 以外の文字コードに変換したときに等価と見なされるという例はたくさんあります。

例を以下に示します。いずれも、Unicode としては独立した文字ですが、文字列を Unicode 以外の文字コードに変換した場合には、同じ文字に集約される可能性があります。

¡
U+00A1
!
U+0021
¦
U+00A6
|
U+007C
À
U+00C0
Á
U+00C1
Â
U+00C2
Ã
U+00C3
Ä
U+00C4
Å
U+00C5
Æ
U+00C6
A
U+0041
Unicode 文字列を Unicode 以外の文字コードに変換したときに、これらの文字がどう変換されるかは処理系に依存しますが、上に示したように、他の文字に変換される可能性は十分にあります。
このように、Unicode と他の文字コードとの変換においては、各文字のコードが1対1で単純に対応しているわけではなく、1対多、場合によっては多対多で対応しているということに注意してください。
つまり、Unicode 文字列が最終的に Unicode 以外のエンコーディングに変換され、そのときに特定の文字を特別視する必要があるのであれば、その特別視すべき文字が Unicode 上ではどれだけの文字に当てはまるのかを考慮する必要があります。


(続く)