pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


CSVファイルをExcelで読み込む際の文字化けに対処する

さまざまなシステムやアプリケーションのデータをCSV形式でエクスポートしてExcelで使用したいケースがありますが、Excelで開くと日本語が文字化けするケースがあります。

そこで文字化けの原因と対処方法を整理してみました。

文字化けする原因

CSVファイルをダブルクリックしてExcelで開く場合、CSVファイルの日本語がShift-JISであるという前提でファイルを開きます。

しかし最近のシステムやアプリケーションの中にはCSVファイルをUTF-8などの別の文字コードで出力しているケースがあります。そうすると文字コードのミスマッチが起きてしまい、UTF-8などの部分が文字化けします。

文字化けを回避する方法

CSVファイルを直接ダブルクリックして開きたい場合は「UTF-8(BOM付き)」のフォーマットにしておけば、Excelがファイルを開くときにShift-JISではなくUTF-8と判断するため、ダブルクリックで開いても文字化けしなくなります。

また、Excelを起動後に都度の操作での対応でもかまわない場合は、「データ」メニュー「外部データ読み込み」で読み込めば、元ファイルの文字コードを指定してファイルを開くことができます。

Windows で「UTF-8(BOM付き)」にする方法

「メモ帳」アプリでの保存時に「名前を付けて保存」を実行し、「文字コード」を「UTF-8(BOM付き)」にできます。

f:id:pslabo:20200608103051p:plain

macOS で「UTF-8(BOM付き)」にする方法

Visual Studio Code をインストールしている場合は、「エンコード付きで保存」を選択し、「UTF-8 with BOM」で保存できます。

その他のmacOS標準アプリケーションでは「UTF-8(BOM付き)」に対応していないと思います(調査不十分です)

データの出力側で考慮する方法

データを出力するアプリケーション側で「UTF-8(BOM付き)」で出力しておけば、クライアント側で何か操作する必要はなくなります。

出力時のフォーマットがUTF-8の場合はファイルの先頭に "0xEF0xBB0xBF" をつけるのが最も容易ですし、文字コード不定のデータを扱う場合は nkf --overwrite --oc=UTF-8-BOM のような方法で「UTF-8(BOM付き)」に変換する方法もあります。