日本語文字コードを調べる・nkfコマンド

nkf(Network Kanji Filter)コマンドを使用してファイル内の日本語文字コードを調べる方法を記します。
現代のLinux(AlmaLinux、Rocky Linux、Ubuntuなど)では初期インストールされていない場合があるため、
必要に応じて dnf install nkf や apt install nkf などでインストールしてください。

kccコマンドを使用して文字コードを調べる資料も公開しています。

【現代のLinux環境における注意点】
現代のLinuxでは標準コマンドの file コマンド(file -i ファイル名)でも文字コード(charset)を確認できますが、
日本語(特にShift_JISやEUC-JP)の自動判定に関しては、現在でも nkf -g の方が圧倒的に高精度で判別してくれます。

目次


スポンサーリンク

関連記事・関連資料

-gオプションにより文字コードの確認ができる

nkfの-gオプションを使用することにより、日本語文字コードを判別することができます。
(自動判定ですが、誤判別する可能性があるので注意してください。詳細は man nkf で確認してみてください。)

nkfのオプション-gをmanコマンドで調べると以下のように記述されています。

$ man nkf
<snip>

 -g  自動判別の結果を出力します。

<snip>

このオプションを使用することにより自動判別することができます。

nkfで自動判別例

以下に各種日本語文字コードのファイルを準備し、以下の構文でファイル内の文字コードを自動判定した時の実行例です。

nkf -g ファイル名
$ nkf -g aiueo-euc.txt 
EUC-JP
$ nkf -g aiueo-sjis.txt 
Shift_JIS
$ nkf -g aiueo-jis.txt 
ISO-2022-JP
$ nkf -g aiueo-utf8.txt 
UTF-8

複数のファイルをまとめて判定したい場合

ワイルドカード(`*`)を使用することで、カレントディレクトリ内にある複数のファイルをまとめて判定し、結果を一覧表示することも可能です。

$ nkf -g *.txt
aiueo-euc.txt: EUC-JP
aiueo-jis.txt: ISO-2022-JP
aiueo-sjis.txt: Shift_JIS
aiueo-utf8.txt: UTF-8

まとめ

本記事では nkf コマンドを使った文字コードの判定方法について解説しました。
Linuxの標準コマンドである file コマンドよりも、日本のレガシーな文字コード(SJISやEUC-JP)を正確に見分ける能力が高いため、
出所不明のテキストファイルやCSVファイルの中身を調査する際には、今でもエンジニアにとって大変重宝するコマンドです。


スポンサーリンク


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2026-06-06 (土) 08:27:57