漢字1文字が最大8バイト、Unicodeの「IVS」とは? - 新常用漢字が引き起こす文字コード問題:ITpro

 プログラム書きの端くれとしては、何ともはやややこしい時代になったもんだ。「半角は1バイト、全角は2バイト」固定長決め打ちで済んでたEUC-JP*1なりSHIFT-JIS*2の時代が懐かしい。しかし理論的には、あるいは検索をかける立場からは、こういう「まず文字の概念に附番、次いで形にバリエーションがあるものはそれに枝番」の方が合理的だよな。ま、それはそれで「この文字とその文字は、同一の『文字の概念』に該当するか」でもめるのが目に見えてるけど。
 しかし、互換性を保ちながら建て増ししなきゃならんのが文字コードの定めとはいえ、実に不細工なもんだ。一方ではA(基本ラテン文字)とΑ(ギリシャ文字)とА(キリル文字)とA(全角形)を別々に収録し、一方ではハンユニフィケーションを行い、そして今度はこのIVSか。検索とか正規化とか、もうOSなりライブラリなりミドルウェアなりの支援がない限り考えたくもないな。同じ字形を意図していても異体字セレクタに対応した実装と対応していない実装との間で異なる符号化表現が採用され、混乱を招く可能性も指摘されているっつーことは、また一つ「見た目が同じなのにコードは違う」の元が増えたわけで、セキュリティ的にもなんかの火種になったりして。

*1:ただし半角カタカナを除く

*2:ただしNEC半角カタカナを除く