謎の康煕部首
「長」という文字を含むPDFからテキストをコピペしたら「長」で検索できなくて驚いた。「長い」を意味する普通の「長」は utf-8だと
e9 95 b7
でコードポイントがU+9577なのに対し、PDFからコピーされた「⻑」は utf-8だと e2 bb 91
でコードポイントは U+2FA7だったのが原因だった。実は後者の「⻑」は康煕部首というものであり、厳密には文字ではないのだが、PDFからテキストをコピーすると何故か文字のかわりに康煕部首が使われてしまうことがあるらしい。見た目では全く区別がつかない。
chou.txt
% cat chou1.txt # 普通の文字
長 1
% cat chou1.txt | od -t x1
0000000 e9 95 b7 20 31 0a
% cat chou2.txt # 康煕部首
⻑ 2
% cat chou2.txt | od -t x1
0000000 e2 bb 91 20 32 0a
% grep 長 chou?.txt
chou1.txt:長 1
% grep ⻑ chou?.txt
chou2.txt:⻑ 2
%
康煕部首などというものを使いたい人はほとんどいないだろうが、何故こういう謎仕様がまかり通っているのだろうか? 大変困るのだが、あまり問題になってないのだろうか?
#文字 #UTF #部首 #康煕部首