nkfで文字変換して文字化けの解消

Linux
この記事は約3分で読めます。

Linuxの多くのディストリビューションではUTF-8という文字コードを使用しています。

EQUIUM S7100にインストールしたUbuntu Desktop 20.04.1 LTSもUTF-8を採用しています。

一方、WindowsではSJIS(Shift-JIS)という文字コードを採用しており、UTF-8と完全な互換性はありません。

そのため、SJISで保存されたテキストをUbuntuで開くと文字化けし、読むことができない場合があります。

そういった時は、nkfコマンドを使って文字コードを変換しましょう。

 

                 

文字コード変換

環境

  • Ubuntu Desktop 20.04.1 LTS

nkfコマンドのインストール

Ubuntu Desktop 20.04.1 LTSの初期状態では、nkfコマンドはインストールされていませんでした。

nkfコマンドがインストールされていない場合は、インストールしましょう。

 



サンプルファイルのダウンロード

文字コードがSJISのファイルをダウンロードします。

今回は、郵便局の郵便番号データを使用しました。

読み仮名データの促音・拗音を小書きで表記するもの - zip圧縮形式 日本郵便
郵便番号データのうち、「ホッカイドウ」のように促音・拗音を小書きで表記したデータをご提供しています。

wgetでファイルをUbuntuにダウンロードします。

 

これで準備完了です。

文字コード変換

文字コードの確認

nkfコマンドで、ファイルの文字コードを確認することができます。

 

使用例

 

 

SJISのファイルを開く

ダウンロードした、01hokkai.zipをzcatで展開すると次のような表示になり、人間では読み取ることができない表示になってしまいます。

いわゆる文字化けの状態です。

 

文字コード変換

文字化けした状態では使えないので、文字コード変換をします。

今回はSJISからUTF-8に変換します。

はいできました。

nkfにオプションを付けると指定した文字コードに変換できます。

いくつか代表的なオプションを書いておきます。

オプション 内容
-e EUCに変換
-w UTF-8に変換
-j JISに変換
-s SJISに変換
-x 全角カナを半角カナに変換
-X 半角カナを全角カナに変換
-g 文字コードを判定

 

 

 

UbuntuなどLinuxのディストリビューションを使っていると、ときどき文字コードの問題が発生します。

業務においても、Windowsアプリケーションから出力されたファイルをLinuxで処理するということがあります。

そのようなときにnkfコマンドを使えると、できることが増えて世界が広がります。

Linuxを使うなら知っておいて損はしないコマンドです。

コメント

タイトルとURLをコピーしました