Linux PR

【nkfコマンド】なんか文字化けしてるんですけど〜な時に使えるnkf!!

【nkfコマンド】なんか文字化けしてるんですけど〜な時に使えるnkf!!
記事内に商品プロモーションを含む場合があります

受託の開発会社でWebエンジニアとして働いているモリヤスです!

SQLを学ぶためにとある技術書を読み進めていた時の話。

DBに技術書指定のテーブルやデータを作るために、用意されていたクエリが書かれていたtxtファイルをターミナルのcatコマンドで見たり、VScodeで開くと下記のようになっていました(下記は実際のクエリとは違います)

INSERT INTO test VALUES ('0001', 'ÇËÇÒÇ≤' ,'àflïû');

なんか文字化けしているぞ!!

環境

  • Mac
  • VScode
  • iTerm

nkfコマンド

よし!

ファイルの文字コードを調べてみよう!

ここで今回の記事の本題のnkfコマンドの登場です!

nkfコマンドは「文字コードの種類の判別や変換を行う」時などに使えるLinuxコマンドです。

nkfコマンドはおそらくデフォルトではないので、まずはインストールします!

僕は次のようにHomebrewでインストールしました。(インストールできたかバージョンを確認しています)

$ brew install nkf
$ nkf --version
Network Kanji Filter Version 2.1.5 (2018-12-15)
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).
Copyright (C) 1996-2018, The nkf Project.

ではnkfを使って該当ファイルの文字コードを確認します!

$ nkf -g hoge.txt
Shift_JIS

このファイルの文字コードはShift-JISのようです。

ただ、MacのVScodeやiTermのデフォルトの文字コードの設定はUTF-8のようです!(下の画像参照)

では次のnkfコマンドを使ってファイルの文字コードを変更します!

$ nkf -w --overwrite hoge.txt
$ nkf -g hoge.txt
UTF-8

しっかりとUTF-8に変更されていました。

また、hoge.txtを再度開くと文字化けがなくなり、日本語が表示されていたので解決です!

終わりに

必ずではないっぽいのですが、Windowsで作る(見る)ファイルはShift-JIS、Macで作る(見る)ファイルはUTF-8というイメージを持っておくと良いみたいです!

文字化け見ると僕は鳥肌立つんですけど皆さんはどうでしょうか?

そんな文字化けに出くわしても冷静に対処していきましょうd( ̄  ̄)

参考記事

Linux学ぶなら下記書籍がおすすめです!(僕も使いました)