文字コード変換コマンド「nkf」

目次
はじめに
nkf(Network Kanji Filter)は、LinuxやUNIX環境で広く使用されている文字コード変換ツールです。特に日本語の文字コード(Shift-JIS、EUC-JP、ISO-2022-JP、UTF-8など)の変換に強みがあり、ファイルのエンコーディングを簡単に変更できるツールとして知られています。本記事では、nkf コマンドの概要、使い方、オプションについて説明します。
nkf コマンドとは?
nkf は、日本語の文字コード変換に特化したコマンドです。LinuxやUNIXにおける他の文字コード変換ツールと同様に、異なるシステム間での文字化けやエンコードの違いによる問題を解決します。また、テキストファイルの文字コード変換だけでなく、ファイルの改行コードの変換にも対応しています。
主な用途
- Shift-JIS、EUC-JP、ISO-2022-JP、UTF-8 などの間での文字コード変換
- ファイルの改行コード(CRLF、LF)の変換
- MIME エンコードされた日本語メールの変換
基本的な使い方
nkf コマンドの基本的な構文は次の通りです。
nkf [オプション] [ファイル名]
例1:Shift-JIS から UTF-8 への変換
$ nkf -w input.txt例2:UTF-8 から Shift-JIS への変換
$ nkf -s input.txt > output.txt主なオプション
1. -s (Shift-JISに変換)
$ nkf -s input.txt2. -e (EUC-JPに変換)
$ nkf -e input.txt3. -w (UTF-8に変換)
BOM(Byte Order Mark)が不要な場合には -w、BOMが必要な場合には -w8 を使用します。
$ nkf -w input.txt # BOM無し
$ nkf -w8 input.txt # BOM有り4. -j (ISO-2022-JPに変換)
$ nkf -j input.txt5. -L (改行コードの指定)
改行コードを変換するためのオプションです。-Lw でWindows形式(CRLF)、-Lu でUnix形式(LF)、-Lm でMac形式(CR)の改行コードに変換します。
$ nkf -Lw input.txt # Windows形式に変換
$ nkf -Lu input.txt # Unix形式に変換6. -g (入力ファイルの文字コードを判定)
$ nkf -g input.txt7. -h (ヘルプ表示)
$ nkf -h改行コードの変換
nkf は、文字コードだけでなく、改行コードの変換にも対応しています。特に、異なるプラットフォーム間(Windows、Linux、macOS)でファイルをやり取りする際、改行コードの違いによって発生する問題を解決することができます。
例:Windows形式(CRLF)からUnix形式(LF)への変換
$ nkf -Lu input.txt > output.txtnkf の用途
1. 異なるシステム間での日本語テキストファイルのやり取り
Windows、Linux、macOS 間で日本語のテキストファイルをやり取りする際、Shift-JIS、EUC-JP、UTF-8 など異なる文字コードが使用されることが多いため、nkf を使って適切に変換することで、文字化けを防ぐことができます。
2. メールのエンコード処理
nkf は、MIME エンコードされた日本語のメールをデコードしたり、逆にエンコードすることも可能です。これにより、メールクライアントやWebメールシステムで日本語が正しく表示されない問題を解決できます。
3. スクリプトやソースコードの文字コード統一
複数の開発者が異なる環境で作業している場合、ソースコードやスクリプトの文字コードが混在することがあります。nkf を使って統一することで、文字コードの不一致によるエラーを防止できます。
まとめ
nkf コマンドは、日本語を含む文字コードの変換に特化した非常に便利なツールです。Shift-JIS、EUC-JP、UTF-8 などの日本語文字コードを簡単に変換できるだけでなく、改行コードの変換にも対応しているため、異なるOS間でファイルを扱う際に非常に役立ちます。文字コードに関する問題や文字化けを防ぐためには、適切に文字コードを変換することが重要です。





