ユアマイスター株式会社エンジニアブログ

ユアマイスター株式会社のエンジニアが日々徒然。

Macで文字化けに立ち向かう

、ウ、ヒ、チ、マ。「・讌「・゙・、・ケ・ソ。シ・ィ・ク・ヒ・「、ヌ、ケ。」
GWコヌスェニヌ、ケ、ャ、、、ォ、ャ、ェイ皃エ、キ、ヌ、キ、遉ヲ、ォ。」

あ、すみません、これ文字エンコード違いましたね。

スタバでフラペチーノ買って優雅にMacで仕事をしているとこういうことがよくあります。

上司「前回の議事録をtxtファイルにしてメールで送っておいたから、確認しておいて〜」

自分「agreeです」

なになに…メールを見ると添付ファイルがついてる。

finderからダブルクリックして開こう。

f:id:yourmystar_engineer:20170507093426p:plain

自分「は?」

Windowsユーザの上司や取引先とのやり取りで往々にしてこういう問題が起きるわけです。

そんな時の解決策は3つ!

  1. 「すいませぇ〜ん!なんか読めないんですけどぉ〜!!」と上司に報告
  2. 「はい!確認しました!」と読んだことにしておく
  3. 華麗に文字エンコードを変換して読む

1と2を選んだあなたはきっとこれからも仕事で苦労をすることでしょう。がんばってください。

3を選んだあなたのために以下の秘技を授けます。

0. Homebrewをインストール

詳しくは割愛 qiita.com

1.viで読む!

最初にTerminalを起動して、対象のファイルの在処までなんとかたどり着きます。

「Terminal 起動方法」でググってください。

きっとエンジニアブログを読む人は使いこなしていると思いますが。

その後、viで対象ファイルを開きます

$vi test.txt

f:id:yourmystar_engineer:20170507094758p:plain

出たな!文字化けめ!

では、vi上で文字コードを変換してみましょう。

MacではデフォルトエンコードUTFー8となっているので :e ++enc=sjis と打ってエンターしてみると…

f:id:yourmystar_engineer:20170507095003p:plain

また化けた…

:e ++enc=sjis で「現在の文字エンコード設定をSJISに切り替える」という意味なんですが、どうにもだめっぽいです。

今度は:e ++enc=euc-jpと打ってエンターしてみましょう!

f:id:yourmystar_engineer:20170507095320p:plain

読めた!!!

これで無事に添付ファイルの内容が確認できましたね!

2. NKFで変換する

NKFをかまさないで普通にcatすると…

f:id:yourmystar_engineer:20170507095724p:plain

悲しくなります。

まずはHomebrewでNKFをインストールしましょう。

brew install nkfでインストールできます。

NKFは文字エンコードを変換してくれるパッケージです。

インストールしたら対象のファイルのあるディレクトリで

$cat test.txt | nkf -wと入力してエンターすると…

f:id:yourmystar_engineer:20170507095839p:plain

出ました!ちゃんと読めてますね!

cat test.txtでファイルの内容をTerminal上に出力し、|(パイプ)でそれをNKFに渡しています。

nkf -wで渡された入力をUTF-8に変換して出力しています。

$cat test.txt | nkf -w > ~/Desktop/test_encoded.txtとやればDesktop上に変換後のファイルを出力することもできますよ!

みなさんもMacを使いこなして優雅なビジネスライフを送りましょう!

私はフラペチーノは嫌いです!