nkf 文字コード変換ツール|UTF-8・Shift_JIS・EUC-JP対応

nkf 文字コード変換ツール

Network Kanji Filter(nkf)の機能をブラウザで手軽にシミュレート。UTF-8・Shift_JIS・EUC-JP・JISコードの変換コマンドを即座に生成し、文字化け解消のヒントとして活用できます。

nkf コマンドジェネレーター

⚡ クイック変換プリセット
生成されたコマンド
nkf -w input.txt > output.txt

テキスト変換デモ(ブラウザ内シミュレーション)

⚠️ このデモはブラウザ上でJavaScriptによるエンコード変換のシミュレーションです。実際のnkfコマンドとは異なる場合があります。正確な変換には実環境でのnkfコマンドをご使用ください。
変換後テキスト(出力)

変換履歴(直近5件)

まだ変換履歴がありません。

    nkf コマンドオプション一覧

    オプション 長形式 出力文字コード 備考
    -j --jis JIS ISO-2022-JP デフォルト出力(省略時)
    -e --euc EUC-JP Unix/Linuxシステムで一般的
    -s --sjis Shift_JIS / CP932 Windows日本語環境の標準
    -w / -w80 UTF-8(BOMなし) 現代の標準。Web・モダンOSで推奨
    -w8 UTF-8(BOM付き) Excel・Windowsメモ帳との互換性
    -w16 UTF-16(BE/BOMなし) Javaなどで使用
    -w16B UTF-16(BE/BOM付き) ビッグエンディアン
    -w16L UTF-16(LE/BOM付き) Windowsのデフォルトエンディアン
    -w16L0 UTF-16(LE/BOMなし) リトルエンディアン・BOMなし
    -g --guess 出力なし(判別のみ) 入力ファイルの文字コードを自動判別
    オプション 入力コードの仮定 説明
    -J JIS ISO-2022-JP 入力をJISと仮定して処理
    -E EUC-JP 入力をEUC-JPと仮定して処理
    -S Shift_JIS 入力をShift_JISと仮定。半角カナも受け入れる
    -W / -W8 UTF-8 入力をUTF-8と仮定して処理
    -W16 UTF-16(LE) 入力をUTF-16リトルエンディアンと仮定
    -W16B UTF-16(BE) 入力をUTF-16ビッグエンディアンと仮定
    --ic=UTF-8-MAC UTF-8 NFD (macOS) Mac上のNFD→NFC変換(濁点分離の修正)
    オプション 改行コード 対応OS 記号
    -Lu / -d LF のみ Unix / Linux / macOS(現代) \n
    -Lw / -c CR+LF Windows \r\n
    -Lm CR のみ 旧Mac OS(OS 9以前) \r
    (指定なし) 変換なし 入力そのまま
    💡 ポイント: Linuxサーバーへのアップロード前にWindowsファイルの改行をCRLF→LFに変換するには nkf -w -Lu --overwrite ファイル名 が便利です。
    オプション 機能 用途
    -m MIMEデコード(デフォルト) メール件名などのMIMEエンコードを解読
    -mB Base64ストリームのMIMEデコード Base64でエンコードされたMIMEを解読
    -mQ Quoted-PrintableのMIMEデコード QP形式のMIMEを解読
    -m0 MIMEデコードを抑止 MIMEヘッダをそのまま保持
    -M MIMEエンコード出力 メール送信用にBase64形式で変換
    -X 半角カナ→全角カナ変換 半角カタカナをJIS X 0208全角に統一
    -x 半角カナ保存 通常の全角変換を抑止して半角を保持
    -Z / -Z0 全角英数→半角ASCII変換 全角英数字・記号をASCIIに変換
    --hiragana カタカナ→ひらがな 片仮名を平仮名に一括変換
    --katakana ひらがな→カタカナ 平仮名を片仮名に一括変換
    --overwrite 元ファイルを上書き 変換結果でファイルを直接置き換え
    -g / --guess 文字コード自動判別 入力ファイルのエンコーディングを表示

    よく使われるnkfコマンド

    クリックするとコマンドジェネレーターに設定が適用されます。

    Shift_JIS → UTF-8(上書き)
    最も頻出のユースケース
    nkf -w –overwrite file.txt
    文字コード自動判別
    ファイルのエンコードを確認
    nkf -g file.txt
    UTF-8 + LF に統一
    Linux/macOS向け推奨設定
    nkf -w -Lu –overwrite file.txt
    UTF-8 → Shift_JIS(Windows向け)
    ExcelやCP932環境向け
    nkf -s -Lw –overwrite file.txt
    MIMEメール件名のデコード
    メール処理スクリプトに
    echo ‘=?…’ | nkf -m
    半角カナ → 全角カナ
    旧データの正規化に
    nkf -w -X –overwrite file.txt

    変換コマンド例とその解説

    基本構文

    # 基本形式 nkf [オプション] 入力ファイル > 出力ファイル # 上書き保存(バックアップなし) nkf [オプション] –overwrite ファイル名

    よく使うコマンド例

    # Shift_JIS → UTF-8(BOMなし)に変換して別ファイルへ出力 nkf -w input_sjis.txt > output_utf8.txt # UTF-8 → Shift_JIS に変換(Windows向け・CRLF改行) nkf -s -Lw input_utf8.txt > output_sjis.txt # EUC-JP → UTF-8 + LF(Linux向け)に変換・上書き nkf -w -Lu –overwrite data.txt # ファイルの文字コードを自動判別 nkf -g unknown.txt # ディレクトリ内のtxtファイルを一括でUTF-8/LFに変換 nkf -w -Lu –overwrite *.txt # MIMEエンコードされたメール件名をデコード echo ‘=?iso-2022-jp?B?GyRCJE8kOCRhJF4kNyRGGyhK?=’ | nkf -m # 入力文字コードを明示(UTF-8と仮定してShift_JISへ) nkf -W -s input.txt > output.txt # macOSのNFD(濁点分離)をNFCに修正してUTF-8変換 nkf –ic=UTF-8-MAC -w –overwrite mac_file.txt # 半角カナを全角カナに変換しつつUTF-8出力 nkf -w -X –overwrite hankaku.txt # 失敗例:同ファイルへのリダイレクト(データが消える) # nkf -w example.txt > example.txt ← NG! –overwrite を使うこと

    変換手順ステップ

    1. nkfのインストール確認: nkf --version を実行。未インストールの場合はパッケージマネージャーで導入(例:sudo apt install nkfbrew install nkf
    2. 現在の文字コードを確認: nkf -g ファイル名 でUTF-8・Shift_JIS・EUC-JPなどを自動判別
    3. 目的の文字コードを決定: 転送先や利用アプリのエンコードに合わせて出力コード(-w / -s / -e)を選択
    4. 改行コードも合わせて変換: Linux向けは-Lu、Windows向けは-Lwを同時に指定
    5. 変換を実行: リダイレクト(> 出力ファイル)または--overwriteで上書き保存
    6. 変換結果を確認: 再度nkf -gで文字コードが正しく変換されたかを確認

    日本語文字コード比較表

    文字コード 別名 / 関連規格 主な利用環境 特徴 nkfオプション
    UTF-8 Unicode、UTF-8N(BOMなし) Web・モダンOS全般・Linux・macOS・MySQL 世界標準。多言語対応。BOMなしが推奨 -w(出力)/ -W(入力指定)
    Shift_JIS CP932、MS漢字コード、Windows-31J Windows日本語版・Excel・レガシーシステム Windows標準。機種依存文字(①②など)を含むCP932が実態 -s(出力)/ -S(入力指定)
    EUC-JP eucJP、AT&Tコード 旧Unix/Linuxシステム・旧Webサーバー Unix系で広く使われた。現在はUTF-8に移行中 -e(出力)/ -E(入力指定)
    ISO-2022-JP JISコード、JIS7、-JIS 日本語メール(RFC 2047)・旧端末 7bitのエスケープシーケンス形式。メールで使用 -j(出力)/ -J(入力指定)
    UTF-16 UCS-2、Unicode(BOM付き) Java内部処理・Windows API・古いファイル 2バイト固定(BMP範囲)。BE/LEとBOM有無に注意 -w16(出力)/ -W16(入力指定)

    nkf のインストール方法

    OS / 環境 インストールコマンド 備考
    Ubuntu / Debian sudo apt install nkf APTパッケージとして提供
    CentOS 7+ / RHEL sudo yum install epel-release && sudo yum install nkf EPELリポジトリが必要
    Fedora sudo dnf install nkf DNFで直接インストール可
    macOS(Homebrew) brew install nkf Homebrewが必要
    Windows(Chocolatey) choco install nkf Chocolateyパッケージマネージャー使用
    ソースからビルド wget https://osdn.jp/dl/nkf/nkf-2.1.4.tar.gz && tar -xzvf nkf-2.1.4.tar.gz && cd nkf-2.1.4 && make && sudo make install configureは不要。makeのみでコンパイル可
    Python(Pip) pip install pynkf PythonからnkfをAPIとして使用可能

    よくある質問(FAQ)

    nkfの自動判別は統計的な確率ベースで動作するため、テキストが短すぎる場合や、ASCII文字のみで構成されている場合に判別精度が低下します。特に英数字のみのファイルでは「ASCII」と表示される場合があります。入力コードを明示したい場合は、-J(JIS)、-E(EUC-JP)、-S(Shift_JIS)、-W(UTF-8)オプションで仮定コードを指定してください。
    同じファイルへのリダイレクトはデータが消失します。シェルはリダイレクト先を先に切り捨てるため、変換前に入力ファイルが空になってしまいます。ファイルを直接変換して上書きするには、必ず nkf -w --overwrite example.txt のように --overwrite オプションを使用してください。
    Shift_JISはJIS X 0208に基づく標準規格で、CP932はMicrosoftがWindowsで拡張したバージョンです。CP932はNEC特殊文字(①②③など)やIBM拡張文字を追加で含んでいます。nkfの-sオプションは実質的にCP932(Windows-31J)を扱います。純粋なShift_JISとして変換したい場合は--no-cp932extオプションを追加してください。
    Web制作・Linux・Unix環境ではBOMなし(-wが強く推奨されます。BOM(U+FEFF)があると、PHPスクリプトや一部のLinuxコマンドで意図しない出力が発生する場合があります。一方、WindowsのExcelでCSVを正しく読み込ませたい場合や、文字コードを明示したい場合はBOM付き(-w8が有効です。
    macOS(HFS+/APFS)のファイルシステムはUnicode正規化形式D(NFD)を使用するため、「が」が「か」+「゛(濁点)」の2文字として保存されます(UTF-8-MAC)。この問題を解消するには nkf --ic=UTF-8-MAC -w --overwrite ファイル名 のように入力コードとして --ic=UTF-8-MAC を指定することで、NFD形式をNFC(通常のUTF-8)に変換できます。
    ワイルドカードと--overwriteを組み合わせることで一括変換が可能です。例えばカレントディレクトリのすべてのtxtファイルをUTF-8/LFに変換するには nkf -w -Lu --overwrite *.txt を実行します。サブディレクトリも含めて変換する場合は find . -name "*.txt" -exec nkf -w -Lu --overwrite {} \; を使用してください。
    nkfは日本語文字コードの自動判別機能が特に優れており、日本語特有のコード(Shift_JIS・EUC-JP・JIS)の変換に強みがあります。iconvはGNU標準のより汎用的なツールで、多くのLinuxに標準搭載されていますが、入力コードの自動判別は行いません。nkfはMIMEデコード・改行コード変換・半角全角変換も一括で行える点が日本語環境では便利です。