初歩のシェルスクリプトで遊ぶ[ぬかみそフォントの制作サポート(4)]
29文字をさらに分類する
JIS2004で字形変更があった168文字に入っている160文字については、まぁ、今まで通り、だろうか。基本的には、経済産業省のPDFを参考にする。
JIS漢字コード表の改正について−報道発表−経済産業省
残りの29文字分、これらをさらに分類します。
8741 2225 15489 666 ∥ 12123 2F5B 7965 1383 ⽛ 20958 51DE 20300 14352 凞 21255 5307 20301 8404 匇 21857 5561 20308 14393 啡 23532 5BEC 20302 8436 寬 24734 609E 21558 14541 悞 25711 646F 20264 5020 摯 26142 661E 20304 8476 昞 26231 6677 16889 14609 晷 28746 704A 20306 14744 灊 29010 7152 21933 14762 煒 29794 7462 16977 8561 瑢 31028 7934 17014 14904 礴 31328 7A60 20310 14926 穠 32092 7D5C 17041 8592 絜 34819 8803 20312 15107 蠃 35711 8B7F 21074 8625 譿 36806 8FC6 18759 15185 迆 37733 9365 17168 15238 鍥 38315 95AB 20313 15258 閫 38741 9755 20314 8696 靕 39498 9A4A 22920 15319 驊 39725 9B2D 17205 13372 鬭 63785 F929 20305 8489 朗 64021 FA15 20307 8542 凞 64032 FA20 21073 8612 蘒 64036 FA24 18760 8632 﨤 64064 FA40 21072 13369 懲
ぱっと見て、半分くらいは見たことがある漢字なんですが、まずこれらのうち、WindowsのシフトJIS、CP932に入るものと入らないものを分けます。
卑怯くさい真似をすると、Windowsの古めのテキストエディタ、Unicodeに対応していない「ANSI版」とかで開くと、こんな感じにCP932に入ってない漢字が消えちゃうんですが。
ANSIテキストエディタのは参考にするとして、そこそこ信用できそうな方法でやります。
$ cat ./OTEdit12-8_Uni_Pr6N_Pro_Char_diff189_29.csv | iconv -c -t cp932 | iconv -f cp932 8741 2225 15489 666 ∥ 12123 2F5B 7965 1383 20958 51DE 20300 14352 21255 5307 20301 8404 匇 21857 5561 20308 14393 23532 5BEC 20302 8436 寬 24734 609E 21558 14541 25711 646F 20264 5020 摯 26142 661E 20304 8476 昞 26231 6677 16889 14609 28746 704A 20306 14744 29010 7152 21933 14762 29794 7462 16977 8561 瑢 31028 7934 17014 14904 31328 7A60 20310 14926 32092 7D5C 17041 8592 絜 34819 8803 20312 15107 35711 8B7F 21074 8625 譿 36806 8FC6 18759 15185 37733 9365 17168 15238 38315 95AB 20313 15258 38741 9755 20314 8696 靕 39498 9A4A 22920 15319 39725 9B2D 17205 13372 63785 F929 20305 8489 朗 64021 FA15 20307 8542 凞 64032 FA20 21073 8612 蘒 64036 FA24 18760 8632 﨤 64064 FA40 21072 13369
いったんiconvでCP932に変換し、このときエラーが出たとき文字を捨てる「-c」を指定しておきます。さらにパイプでiconvに繋いで、再びutf-8に戻してやる。これでCP932に有る文字だけを残します。
「temp_cp932.csv」で保存。
Unicodeの文字が残っている「〜29.csv」と、Unicodeの文字を削った「temp_cp932.csv」とを、diffで比較して、欲しいところを抜き出します。
$ diff ./OTEdit12-8_Uni_Pr6N_Pro_Char_diff189_29.csv ./temp_cp932.csv | grep -e '^<' | cut -f 2- -d ' ' 12123 2F5B 7965 1383 ⽛ 20958 51DE 20300 14352 凞 21857 5561 20308 14393 啡 24734 609E 21558 14541 悞 26231 6677 16889 14609 晷 28746 704A 20306 14744 灊 29010 7152 21933 14762 煒 31028 7934 17014 14904 礴 31328 7A60 20310 14926 穠 34819 8803 20312 15107 蠃 36806 8FC6 18759 15185 迆 37733 9365 17168 15238 鍥 38315 95AB 20313 15258 閫 39498 9A4A 22920 15319 驊 39725 9B2D 17205 13372 鬭 64064 FA40 21072 13369 懲
OTEdit12-8_Uni_Pr6N_Pro_Char_diff189_29_16.csv
以上16文字が、CP932には無い文字。
$ cat ./temp_cp932.csv | awk '{ if( $5 != "" ){ print $0 } }' 8741 2225 15489 666 ∥ 21255 5307 20301 8404 匇 23532 5BEC 20302 8436 寬 25711 646F 20264 5020 摯 26142 661E 20304 8476 昞 29794 7462 16977 8561 瑢 32092 7D5C 17041 8592 絜 35711 8B7F 21074 8625 譿 38741 9755 20314 8696 靕 63785 F929 20305 8489 朗 64021 FA15 20307 8542 凞 64032 FA20 21073 8612 蘒 64036 FA24 18760 8632 﨤
OTEdit12-8_Uni_Pr6N_Pro_Char_diff189_29_13.csv
13文字が、CP932に有る文字。
CP932のどこにある?
13文字は、第一水準だろうか。第二水準だろうか。IBM拡張漢字だろうか。
このくらいなら手作業でもよさそうだけど。スクリプトにしておけば使えるかもしれんので。
#!/bin/sh # =============================================================================== # ■ CP932の文字コードを追記する_ttedit_20210307_04.sh # # # ・input # unicode(DEC) unicode(HEX) CID2004 CID90 文字 # # # # 8741 2225 15489 666 ∥ # 21255 5307 20301 8404 匇 # 23532 5BEC 20302 8436 寬 # 25711 646F 20264 5020 摯 # 26142 661E 20304 8476 昞 # 29794 7462 16977 8561 瑢 # 32092 7D5C 17041 8592 絜 # 35711 8B7F 21074 8625 譿 # 38741 9755 20314 8696 靕 # 63785 F929 20305 8489 朗 # 64021 FA15 20307 8542 凞 # 64032 FA20 21073 8612 蘒 # 64036 FA24 18760 8632 﨤 # # # =============================================================================== while read unicodeDec unicodeHex cID2004 cID90 CHAR ; do cp932Code=`iconv -t cp932 << __STDIN | od -t x1 -A n -v | awk -e '{ print $1 $2 }' ${CHAR} __STDIN` printf '%s %s %s %s %s %s\n' ${unicodeDec} ${unicodeHex} ${cID2004} ${cID90} ${CHAR} ${cp932Code} done
$ cat ./OTEdit12-8_Uni_Pr6N_Pro_Char_diff189_29_13.csv | ./ttedit_20210307_04.sh |sort -k 6 8741 2225 15489 666 ∥ 8161 25711 646F 20264 5020 摯 9d95 21255 5307 20301 8404 匇 fa8a 23532 5BEC 20302 8436 寬 faaa 26142 661E 20304 8476 昞 fad3 63785 F929 20305 8489 朗 fae0 64021 FA15 20307 8542 凞 fb58 29794 7462 16977 8561 瑢 fb6b 32092 7D5C 17041 8592 絜 fb8b 64032 FA20 21073 8612 蘒 fb9f 35711 8B7F 21074 8625 譿 fbac 64036 FA24 18760 8632 﨤 fbb3 38741 9755 20314 8696 靕 fbf3
平行線「∥」が序盤の全角記号のところ。
「摯」が第二水準で、他はIBM拡張漢字、っすね。