![スクリーンショット_2019-02-11_20](https://assets.st-note.com/production/uploads/images/9931681/rectangle_large_type_2_383094334e64509adbc7c02b214a7b61.png?width=1200)
csvの文字化けに苦しまなくて済む方法を模索してみた
きっかけ
僕は仕事でよくCSVをExcelで開きます。
BigQueryの出力結果をダウンロードして資料用に加工したり、顧客管理ツールからリストを落として名寄せしたりetc...
事務仕事中心の方やマネージャーの方など、僕と同じようにcsvを使う機会の多い人がぶち当たる壁がこれです↓
▂▅▇█▓▒░(‘ω’)░▒▓█▇▅▂ うわあああああああああ
(」゚ロ゚)」おぉ(。ロ。)おぉΣ(゚ロ゚」)」おぉ「(。ロ。「)おぉ~
あるあるですね。
文字化けがなぜ起きるのか?
文字コードの違いで起きるらしいです。
ダウンロードファイルはUTF8という形式が多いようです。
一方でExcelはShift-jis形式なので、文字コードが違うと認識できないのでこういうことが起きるようです。
新卒の頃は、無知すぎて「UTF8形式で出力するツール....ハ~ッρ(`O´*)チョームカツクー!..ナグリターイ!」と思っていました。
が、日本人の名前とかで独特の旧字(例:髙橋さんの「髙」とか)はShift-jis形式では認識できず「?」とかになってしまうようです。
仕方ないので、下記で紹介されているようにテキストファイルで開いて文字コードを変更して...みたいな方法をやるのですが、めっちゃめんどい。。。
もっと楽にできる方法ないんか??と思って調べた結果、以下のような方法にたどり着きました。
解決方法:ターミナルのnkfコマンドを使う
nkfコマンドとは、macのターミナルコマンドです。
(※network Kanji Filterの略らしい)
ターミナル上でファイルのパスを指定して、文字コードを書き換えられるので楽です。
手順
1. CSVファイルをダウンロード
2. ⌘(コマンド)+⌥(オプション)+cでファイルのパスをコピー
3. ターミナルを起動
4. nkfコマンドを実行
1. CSVファイルをダウンロード
2. ⌘(コマンド)+⌥(オプション)+cでファイルのパスをコピー
3. ターミナルを起動
4. nkfコマンドを実行(※今回はファイルの文字コードをShift-jisに上書き)
これで終わりです。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を強化したいよ、という方是非ご連絡ください。
では、引き続き宜しくお願い致します!