スクリーンショット_2019-02-11_20

csvの文字化けに苦しまなくて済む方法を模索してみた


きっかけ

僕は仕事でよくCSVをExcelで開きます。
BigQueryの出力結果をダウンロードして資料用に加工したり、顧客管理ツールからリストを落として名寄せしたりetc...

事務仕事中心の方やマネージャーの方など、僕と同じようにcsvを使う機会の多い人がぶち当たる壁がこれです↓

画像1

▂▅▇█▓▒░(‘ω’)░▒▓█▇▅▂ うわあああああああああ
(」゚ロ゚)」おぉ(。ロ。)おぉΣ(゚ロ゚」)」おぉ「(。ロ。「)おぉ~

画像2

あるあるですね。

文字化けがなぜ起きるのか?

文字コードの違いで起きるらしいです。
ダウンロードファイルはUTF8という形式が多いようです。
一方でExcelはShift-jis形式なので、文字コードが違うと認識できないのでこういうことが起きるようです。

新卒の頃は、無知すぎて「UTF8形式で出力するツール....ハ~ッρ(`O´*)チョームカツクー!..ナグリターイ!」と思っていました。
が、日本人の名前とかで独特の旧字(例:髙橋さんの「髙」とか)はShift-jis形式では認識できず「?」とかになってしまうようです。

仕方ないので、下記で紹介されているようにテキストファイルで開いて文字コードを変更して...みたいな方法をやるのですが、めっちゃめんどい。。。

もっと楽にできる方法ないんか??と思って調べた結果、以下のような方法にたどり着きました。

解決方法:ターミナルのnkfコマンドを使う

nkfコマンドとは、macのターミナルコマンドです。
(※network Kanji Filterの略らしい)
ターミナル上でファイルのパスを指定して、文字コードを書き換えられるので楽です。

手順
1. CSVファイルをダウンロード
2. ⌘(コマンド)+⌥(オプション)+cでファイルのパスをコピー
3. ターミナルを起動
4. nkfコマンドを実行

1. CSVファイルをダウンロード

画像3

2. ⌘(コマンド)+⌥(オプション)+cでファイルのパスをコピー

画像4

3. ターミナルを起動

画像5

4. nkfコマンドを実行(※今回はファイルの文字コードをShift-jisに上書き)

画像6

これで終わりです。1〜4までで30秒もかからず、トラックパッドに触れる回数は2回だけ(※ダウンロードボタンで1回、ダウンロードファイルを開くのに1回)。
作業に無駄がなくて美しいですね!

※よく使うコマンド

--ファイルの文字コードを確認

$ nkf -g ファイルのパス

--ファイルの文字コードをShift-jisに上書き(※「-s」の部分を「-u」にすればutf8に書き換えられる)

$ nkf -s ファイルのパス

※詳細なコマンドやインストール方法はこちらの記事にまとまっていました。

nkfコマンドのインストールにはHomebrewがインストールされている必要があります。

参考:coteditorを使う方法

coteditorというエディタでファイルを開いて書き換える方法もあります。
ただ僕の環境だと、何万レコードもあるデータを書き換えようとするとPCがフリーズしてしまうので、利用には至りませんでした。
利用者も多く、何人かにおすすめしていただいたので、参考リンクを貼っておきます。

以上、お読みいただきありがとうございました。

【PR】最後に僕の会社宣伝させてください!

デジマ・DXに関するコンサルティング会社「株式会社Mar-KPT(マーケプト)」を経営しています。今後マーケティング・DXを強化したいよ、という方是非ご連絡ください。

では、引き続き宜しくお願い致します!

この記事が気に入ったらサポートをしてみませんか?