• ベストアンサー

iconvでSJIS→UTF-8に変換できない文字

cygwin1.7.31 の iconv を使って50個程度のShift-JISのcsvファイルをUTF-8に 一斉に変換しようとしていますが、 レコード内に「(1)」という文字があるためか、出力が止まってしまいました。 このような文字を含む場合も変換する方法がございましたらご教示ください。 お願いします。 入力したコマンドは次の通りです。 iconv -f Shift_JIS -t UTF-8 abc.csv > test.csv エラーメッセージ iconv: abc.csv:36:30: cannot convert

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

iconv -f CP932 -t UTF8 abc.csv > test.csv または iconv -f SHIFT_JISX0213 -t UTF8 abc.csv > test.csv 両者では、チルダ文字「~」の扱いが異なるので、「~」を「~」のままにしたい場合は前者を、「~」を「‾」に変換したい場合は後者を使用する。 なお、-f Shift_JISは、丸数字などの機種依存文字はサポート外なので、機種依存文字が現われると iconv: <入力ファイル名>:<行番号>:<文字位置>: cannot convert を出力して停止する。

noname#261805
質問者

お礼

ご回答ありがとうございます。お礼が遅くなりまして失礼しました。 いただいた内容で対応できました。S-JISではなくて、 「CP932」か「SHIFT_JISX0213」にする必要があったんですね。 検索結果に掲載されていたサイトだとほとんどがS-JISで記載されていたので、 回答いただかなければ大変な遠回りをするところでした。 また、2者の違いまで記載いただきましてありがとうございます。

関連するQ&A