CSVインポート時の文字化けを防ぐ方法

【PR】Amazonおすすめ商品
・ブラックフライデーで半年ぶりの最安値

エクセルで、CSVファイルをインポートしたときに、文字化けが発生して正しく表示されない場合があります。

この原因と、解決策を図解入りで詳しく紹介します。

 

スポンサードリンク

文字化けが起きる原因

一言でいうと、エクセルが想定した文字コードとCSVファイルの文字コードが一致していないからです。

文字コードとは、たとえて言うと日本語・英語・ドイツ語などの言葉のようなものです。

エクセルでよく使われる文字コードは、「UTF-8」と「Shift-JIS」の2種類です。

エクセルでCSVをインポートするときにはどの文字コードを使っているかを手動で指定できますし、指定しなくてもファイル内容から自動的に文字コードを判別してくれます。

ところが、文字コード「UTF-8」の場合はさらに2種類あって、「UTF-8(BOMなし)」「UTF-8(BOMあり)」の後者でなければ、エクセルは誤動作でエクセル標準の文字コードの「Shift_JIS」で読み込まれてしまいます。

つまり、エクセルで自動的に「UTF-8」を認識させるためには、「UTF-8(BOM付き)」である必要があるわけです。

ちなみに「BOM」とは、”バイトオーダーマーク(byte order mark)”の略で、ファイルの付加情報です。

専門的な話になるのでこれ以上は深入りしませんが、興味のある人はウィキペディアなどを調べてみてください。

バイト順マーク - Wikipedia

余談ですが、かつてIT機器といえばWindowsパソコンが使われることが多く、そこでは「Shift-JIS」が使われていました。

しかし、現在ではMac/Linux/iOS/Androidなどマルチプラットフォームが当たり前になっていますので、マルチプラットフォームと親和性が高い「UTF-8」を使うことが前提となっています。

エクセルで「Shift-JIS」が標準なのは、かつての名残です。

 

スポンサードリンク

解決方法

根本的な解決方法

CSVファイルを作るときに、文字コードUTF-8の場合はBOM付きのファイルを作成することです。

具体例で言えば、Pythonの場合は次のコードのようにencodingを指定すると、BOM付きのUTF-8が出力できます。

with open(path, 'w', encoding="utf_8_sig") as f:

対処療法的な解決方法

CSVファイルを作るときに手を加えられないとすると、作成済みのCSVファイルをテキストエディターで開いて、BOM付きUTF-8の文字コードで保存し直す、というやり方になります。

以下に具体的な方法を紹介しますが、念の為に元のCSVからコピーを作って作業をするようにしてください。

Windowsを使っている場合

ここではWindows標準アプリの「メモ帳」を使った場合の説明をします。

要は、文字コード「UTF-8(BOM付き)」でファイル保存すればいいだけなので、メモ帳以外のテキストエディター(サクラエディタ、Mery、秀丸など)でも可能です。

全4Step
  • Step 1

    メモ帳でCSVファイルを開きます。

    開いたときに右下に文字コードが表示されます。

    図の①のように「UTF-8」ならBOMなし、②のように「UTF-8(BOM付き)」ならBOM付きです。

    メモ帳の文字コード表示

    メモ帳の文字コード表示

  • Step 2

    では、BOMなしの場合の変換方法です。

    ①でメニューから「ファイル」をクリックして、②の「名前を付けて保存…」を選びます。

    メモ帳で別名保存

  • Step 3

    以下の図のようにファイル保存の画面が表示されたら、①で文字コードを「UTF-8(BOM付き)」を選んで、②で必要に応じてファイル名を適当なものに変更して、③で「保存」をクリックします。

    メモ帳で別名保存

  • Step 4

    ファイルが保存できたら、いったんメモ帳を終了して再度開いてみて、①のように文字コードが「UTF-8(BOM付き)」になっているかを確認してください。

    以上で、Windowsのメモ帳を使った変換方法の説明が終了です。

    メモ帳の文字コード表示

Macを使っている場合

Windowsとは違って、Mac標準アプリの「テキストエディット」では「UTF-8(BOM付き)」の保存ができないので、別のアプリを使う必要があります。

ここでは、App Storeから入手できる「CotEditor」を使った方法を紹介します。

要は、文字コード「UTF-8(BOM付き)」でファイル保存すればいいだけなので、CotEditor以外のテキストエディター(mi、Jedit Xなど)でも可能です。

全4Step

 

このページの記事は、ここまでです。

コメント

タイトルとURLをコピーしました