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 を使うこと
変換手順ステップ
- nkfのインストール確認:
nkf --versionを実行。未インストールの場合はパッケージマネージャーで導入(例:sudo apt install nkf、brew install nkf) - 現在の文字コードを確認:
nkf -g ファイル名でUTF-8・Shift_JIS・EUC-JPなどを自動判別 - 目的の文字コードを決定: 転送先や利用アプリのエンコードに合わせて出力コード(-w / -s / -e)を選択
- 改行コードも合わせて変換: Linux向けは
-Lu、Windows向けは-Lwを同時に指定 - 変換を実行: リダイレクト(
> 出力ファイル)または--overwriteで上書き保存 - 変換結果を確認: 再度
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デコード・改行コード変換・半角全角変換も一括で行える点が日本語環境では便利です。
