日本語版のExcelでCSVを作成するとShift-JIS(SJIS)で保存されるが、それを別のLinuxサーバー側のプログラムで読み込もうとすると、文字化けしてしまうことがよくある。
それは日本語版Windowsの標準文字コードがShift-JISであるのに対し、プログラム側は世界で最も使われているUTF-8を使用することが多いからだ。
UTF-8(ユーティーエフエイト)とは?文字コードの仕組みを知れば文字化けでも慌てない
今回は「UTF-8」を中心に、文字コードの基礎と各ブラウザでの確認方法をご紹介します。 文字コードの存在は知っているけれど詳しくは知らないという方は、この機会に基礎知...
サーバーにCSVファイルを渡す前に手動で文字コードを変更したり、プログラム側で変換するのはあまり効率的ではない。
そこで、Linuxのiconvコマンドを使って文字コードを変換する方法を紹介します。
目次
Shift-JISからUTF-8へ変換
今回は、対象のCSVファイルをUTF-8に変換後、別のファイル名で出力する方法です。
1 |
iconv [その他オプション] -f [変換前の文字コード] -t [変換後の文字コード] [変換前のファイル名] > [変換後のファイル名] |
上記を踏まえて以下に例を書きます。
変換できない場合は出力せずにスキップさせます。
1 |
iconv -c -f cp932 -t utf-8 data_sjis.csv > data_utf8.csv |
「cp932」とはShift-JISのWindows拡張版らしいです。
Excelで作成したCSVならこっちの方が良いらしい(ここは調べてみてね!)
※Windows-31J(MS932)も同じようなものらしい
?y iconv ?z?R?}???h?¥?¥?????R?[?h??ϊ?????
?{?A?ڂ́ALinux?̃R?}???h?ɂ??āA??{????????I?v?V?????A??̓I?Ȏ??s??܂ł??Љ?Ă????܂??B????́A?uiconv?v?R?}???h?ł??B
文字コードの問題って昔から大変ですよね。
早く全世界UTF-8に統一したら良いのに…
コメント
コメント一覧 (1件)
[…] 【参照】これまでの流れ LinuxでWindowsのCSVファイルをShift-JISからUTF-8に変換する方法https://minory.org/linux-csv-encode.html日本語版のExcelでCSVを作成するとShift-JIS(SJIS)で保存されるが、それを別 […]