OSDNの閉鎖に伴い、こちらで一時的にダウンロードサービスを提供しています。
inkf は、nkf-2.x互換の文字コード変換コマンドです。Shift_JIS, ISO-2022-JP, EUC-JP(CP51932, EUCJP-MS), UTF-8, UTF-7, UTF-7-IMAP, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE, EUC-KR, GB18030, BIG5, ISO-8859-*, KOI8, CP1251, CP1252, CP1258等が扱えます。
また、iconvコマンドの-f, -tオプションと互換性があります。 iconvやnkfなどのライブラリには依存していません。
UTF-16サロゲートペア、3バイトEUC-JP、半角カナ、GB18030 2004に対応しています。
文字セットを指定すると、必ず上位の文字集合で変換が行われます。
改行コード変換、MIMEエンコード/デコードなどの基本機能は持っていますが、その他の細かい機能で省略しているものがあります。
おまけで、http, https (要openssl), ftpでのファイル取得機能、およびマルチトラック対応の MIDI ファイル作成機能がついています。
http, httpsでのファイル取得機能はリダイレクトに対応しているため、OSDNからのファイルダウンロードがwgetよりも簡単に行えます。
例1) Shift_JIS から UTF-8 に変換
cat sjisfile.txt | inkf -Sw > utf8file.txt
例2) 指定の URL から HTML を取得してプレーンテキストに変換し EUC-JP で出力
inkf -e --html-to-plain http://www.example.com/
例3) MIDI ファイル(ドレミ)を作成
echo "cde" | inkf -O --midi mymusic.mid
GNU/Linux x86 上の GCC (g++) 2.95.3 でコンパイル・動作を確認しました。
* MacOSX、Solaris、各種BSD 等でも動作すると思います。
指定できるオプションは以下の通り。 -Sj のように続けることができます。
-j JIS コードを出力します。 -e EUC-JP コードを出力します。 -s Shift_JIS コードを出力します。 -l Latin1 コードを出力します。 -c GB2312 コードを出力します。 -b BIG5 コードを出力します。 -w -w8[0] -w16[BL][0] -w32[BL][0] Unicode を出力します。 -w -w80 UTF-8 コードを出力します。 (BOM 無し) -w8 UTF-8 コードを出力します。 -w16 -w16B0 UTF-16 コードを出力します。 (Big Endian / BOM 無し) -w16B UTF-16 コードを出力します。 (Big Endian / BOM 有り) -w16L UTF16 コードを出力します。 (Little Endian / BOM 有り) -w16L0 UTF-16 コードを出力します。 (Little Endian / BOM 無し) -w32 -w32B0 UTF-32 コードを出力します。 (Big Endian / BOM 無し) -w32B UTF-32 コードを出力します。 (Big Endian / BOM 有り) -w32L UTF-32 コードを出力します。 (Little Endian / BOM 有り) -w32L0 UTF-32 コードを出力します。 (Little Endian / BOM 無し) -m[BQN0] MIME を解読します。 -mB MIME base64 stream を解読します。 -mQ MIME quoted stream を解読します。 -mN MIME のチェックを緩くします。 -m0 MIME を解読しません。 -M[BQbq] MIME 変換します。 -M ヘッダ形式に変換します。 -MB base64 stream に変換します。 -MQ Quoted stream に変換します。 -Mb BASE64 のヘッダ形式に変換します。 -Mq Quoted Printable のヘッダ形式に変換します。 -J -E -S -W 期待される入力コードの性質を指定します。 -J ISO-2022-JP を仮定します。 -E 日本語 EUC-JP を仮定します。 -S Shift_JIS を仮定します。 -C GB2312 コードを仮定します。 -B BIG5 コードを仮定します。 -W UTF-8 を仮定します。 -W8 UTF-8 を仮定します。 -W16 UTF-16 (Little Endian)を仮定します。 -W16B UTF-16 (Big Endian)を仮定します。 -W16L UTF-16 (Little Endian)を仮定します。 -W32 UTF-32 (Little Endian)を仮定します。 -W32B UTF-32 (Big Endian)を仮定します。 -W32L UTF-32 (Little Endian)を仮定します。 -l 0x80-0xfe のコードを Latin-1 として扱います。 -O ファイルに出力します。 -L[uwm] 改行コードを変換します。 -Lu unix (LF) -Lw windows (CRLF) -Lm old mac (CR) デフォルトでは変換しません。 -N MIMEエンコード/デコード時に改行コードを除去しません。 -n 不用な改行コードを出力しません。 --ic=--oc= > 入力・出力の漢字コード系を指定します。 -f -t > 入力・出力の漢字コード系を指定します(iconv互換用)。 --hiragana --katakana 平仮名、片仮名変換をします。 --zenkaku-ascii 全角アルファベットに置換します。 --hankaku-ascii 半角アルファベットに置換します。 --zenkaku-katakana カタカナを半角から全角に置換します。 --hankaku-katakana カタカナを全角から半角に置換します。 --html-to-plain HTMLをプレーンテキストに変換します。 -g --guess 自動判別の結果を出力します。 --midi 標準MIDIファイルを出力します。 --md5 MD5 sumを出力します。 --sha1 SHA-1 sumを出力します。 --sort-csv= 1行目がヘッダのCSVファイルを昇順でソートします。 --sort-csv-r= 1行目がヘッダのCSVファイルを降順でソートします。 --format-json JSONを整形します。 --minify-json JSONをミニマイズします。 --re-match=<パターン> 正規表現マッチを行います。 --overwrite ファイルを上書きします。 --help コマンドの簡単な説明を表示します。 -v --version inkf のバージョンを表示します。
ほとんどの環境では、makeコマンドの実行のみでコンパイル可能です。
例)
# tar zxf inkf-2.0.0.tar.gz
# cd inkf-2.0.0/
# make
# make install
標準で、Cライブラリ libinkf を提供しています。
LGPLv2 で公開しています。
2025-01-31 inkf-2.1.5.tar.gz