sjisで文字化け対応、髙、﨑 など


よく文字コードの世界で、
髙=はしご高
﨑=立ち崎
って言われるあいつらです。


今まで、「だいたいsjis=cp932」で覚えていたんですが、ちょっと違いについておさらい。

・sjisからcp932が派生してできたので文字コード的には概ね一緒
・髙などはsjisでは表現できないけどcp932では対応可能
・cp932はms932とも表現される

とまあだいたいこんな感じです。

事の発端は、iconvでsjisに変換してる奴が居たんだけど、-cオプションで変換できない文字をスキップしていたら、文字が欠損という話になりまして。sjisそのままだと表現できないから、cp932に変換する必要が出てきた、といいう感じです。ついでにnkfで変換するようにして元の文字コードを自動判別。

cat in_file | nkf -s --cp932 > out_file

だいたいこんな感じ。
今までcp932に関しては漠然としすぎてたので、ちょっと調査。


参考:
https://weblabo.oscasierra.net/shift_jis-windows31j/
https://qiita.com/aosho235/items/6976247eb057ccc604c5