inkf - yet another network kanji filter

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

libinkf

標準で、Cライブラリ libinkf を提供しています。

ライセンス

LGPLv2 で公開しています。

ダウンロード

2025-01-31 inkf-2.1.5.tar.gz


たちばなまさし ( Masashi Astro Tachibana )