サイトアイコン IT NEWS

LinuxでWindowsのCSVファイルをShift-JISからUTF-8に変換する方法

linux-csv-encode

日本語版のExcelでCSVを作成するとShift-JISSJIS)で保存されるが、それを別のLinuxサーバー側のプログラムで読み込もうとすると、文字化けしてしまうことがよくある。
それは日本語版Windowsの標準文字コードShift-JISであるのに対し、プログラム側は世界で最も使われているUTF-8を使用することが多いからだ。

サーバーにCSVファイルを渡す前に手動で文字コードを変更したり、プログラム側で変換するのはあまり効率的ではない。
そこで、Linuxiconvコマンドを使って文字コード変換する方法を紹介します。

Shift-JISからUTF-8へ変換

今回は、対象のCSVファイルをUTF-8に変換後、別のファイル名で出力する方法です。

iconv [その他オプション] -f [変換前の文字コード] -t [変換後の文字コード] [変換前のファイル名] > [変換後のファイル名]

上記を踏まえて以下に例を書きます。
変換できない場合は出力せずにスキップさせます。

iconv -c -f cp932 -t utf-8 data_sjis.csv > data_utf8.csv

cp932」とはShift-JISWindows拡張版らしいです。
Excelで作成したCSVならこっちの方が良いらしい(ここは調べてみてね!)
※Windows-31J(MS932)も同じようなものらしい

文字コードの問題って昔から大変ですよね。
早く全世界UTF-8に統一したら良いのに…

モバイルバージョンを終了