libiconvで半角カナをcp932からutf-8に変換できないことがある
Sonoma-14.1.2です。
Mac付属のiconvを使ってcp932(いわゆるシフトJIS)の文字列をutf-8に変換しようとすると、一部変換に失敗します。
オ テ
投稿できないため全角にしましたが半角カタカナで、このようなファイルをUTF-8テキストでote.txtとして作成して、iconvでUTF-8 --> cp932 --> UTF-8としても
元に戻りません。
$ /usr/bin/iconv -f utf-8 -t cp932 ote.txt > ote-cp932.txt
$ /usr/bin/iconv -t cp932 -f utf-8 ote-cp932.txt > ote-after.txt
$ diff ote.txt ote.after
1c1
< オ テ
---
> オ C
$
(上記も半角カタカナなのですが、投稿できないため全角にしました)
変換対象文字列によっては、うまくいくこともありますが、半角カタカナがあるとうまくいかないことが多いようです。
homebrew のiconv だときちんと元に戻りますが、多くのソフトはMac標準のiconvを使っているため不便です。
Sonomaに変えてからこのようなことが発生するようになった気がします。
MacBook Air 13″, macOS 14.1