wkf: 漢字コード変換フィルタ/ライブラリ

更新履歴

[2007/07/06 (Fri)]
wkf-1.3.11 リリース
wkfEncodeBase64Bin() と wkfEncodeQuotedPrintableBin() 関数と wkfDecodeEscapedURIString() 関数(1.3.10で実装)が追加されています。

[2005/08/31 (Wed)]
ソースコードの変更はないが、strlcpy(3) がない環境でも make できるように wkf-1.3.9 を置き換えた。
2005/09/01(Tue)に make test の不具合を解決した版に置き換えました。

[2005/04/29 (Fri)]
以下の修正/改良などを行った wkf-1.3.9 をリリース。

  • wkfDecodeBase64String() のパッディング処理で誤判定が起こり、 正しくデコードできない問題に対処
  • wkfEncodeMimeString() を実装
  • strncpy() を strlcpy() で置き換えた
  • jis2jis() で ASCII 状態で終了した場合に、 正しいエスケープシーケンスを出力しない問題を解決
  • wkfDecodeMimeString() 関数のコードを改良
  • wkf.c で getopt(3) を使ってオプション解析などを書き換えた

[2005/04/05 (Tue)]
wkfFoldString() を実装しただけの wkf-1.3.8 を公開。

[2004/12/07 (Tue)]
以下の不具合を解決した wkf-1.3.7 をリリース。

  • EUCファイルを強制的に SJIS と認識させて EUC に変換させようとすると SIGBUS で落ちるバグに対処
  • Windows 固有の問題でバックアップファイルがすでに存在しているときに -AT オプションを指定してもファイルの置き換えがなされないというバグを解決

[2004/05/13 (Thu)]
base64関数の不具合を修正した wkf-1.3.5 をリリース。

[2004/03/19 (Fri)]
configure で ld オプションを設定するように改良した。
ソース自体に変更はないので、wkf-1.3.4 を置き換えた。

[2003/10/23 (Thu)]
漢字コード判別ルーチンを改良した wkf-1.3.4 リリース。

[2003/06/09 (Mon)]
Solaris でのリンク用パッチを追加。
ソース自体に変更はないので、wkf-1.3.3 を置き換えた。

[2003/03/18 (Tue)]
jis2jis()関数内にバグあり。
致命的じゃないけど、wkf-1.3.3 を置き換えた。

[2003/03/17 (Mon)]
Windows 環境の Visual C 用パッチにミスあり。
wkf-1.3.3 を置き換えた。

[2003/03/14 (Fri)]
Windows 環境の Visual C でコンパイルできるようになった。
wkf-1.3.3 としてリリース。

[2002/10/02 (Wed)]
一行の長さが 2048 バイトを越える場合に、 wkfConvertKanjiCodeOfString() などの文字列処理関数を利用した場合に、 正しく処理されない不具合を修正した 1.3.2 をリリース。

[2002/08/25 (Sun)]
バイナリデータの Base64 encoding 関数を実装した 1.3.1 をリリース。

概要

漢字コード変換フィルタと C プログラム用漢字コード変換ライブラリです。
主な特徴は次の通りです。

  • 状態遷移による自動漢字コード判別機能
  • JIS、日本語 EUC、Shift-JIS コードの相互変換が可能
  • 1byte 片仮名(俗称半角カナ文字)を 2byte コードに自動的に変換
  • 2byte 英数字を 1byte 英数字に変換可能
  • ファイルの漢字コードの置換が可能
  • 漢字コードのチェック機能付き
  • Macintosh や DOS で作成したファイルでも自動的に行末コードを改行に変換
  • Macintosh 形式の行末コードで出力可能
  • DOS 形式の行末コードで出力可能
  • 行単位での漢字コード判別/変換が可能(1.3.0 以降)
  • MIME に対応(1.3.0 以降)
  • C プログラム用ライブラリとして利用可能
    次の機能をもつ API をライブラリで提供。
    1. 漢字コード表示
    2. 漢字コードの自動判別
    3. 漢字コードを変換してファイルを読み込み専用で開く
    4. 漢字コードを変換してファイルに出力
    5. 漢字コードを変換して文字列用のバッファに返す
    6. 改行コードの設定
    7. 2byte 英数字を 1byte 英数字に変換
    8. 文字列を Base64 でエンコードした文字列に変換(1.3.0 以降)
    9. Base64 でエンコードされた文字列をデコード(1.3.0 以降)
    10. Base64 でエンコードされたファイルをデコード(1.3.0 以降)
    11. 文字列を Quoted-Printable でエンコードした文字列に変換(1.3.0 以降)
    12. Quoted-Printable でエンコードされた文字列をデコード(1.3.0 以降)
    13. Quoted-Printable でエンコードされたファイルをデコード(1.3.0 以降)
    14. MIME エンコードされた文字列をデコード(1.3.0 以降)
    15. 文字列を(:XX:XX のような) 16進数表示文字列に変換(1.3.0 以降)
    16. MIME エンコードされた文字列を(:XX:XX のような) 16進数表示文字列に変換(1.3.0 以降)

ドキュメント

漢字コードの判別のためにコマンドラインで実行した場合、 下記表のいずれかの出力が返されます。 なお、Unicode には対応していないので、 Unicode のファイルは data あるいは unknown として判別されます。

漢字コード判別の戻り値一覧
戻り値説明
ascii ISO 646-1991 ASCII
oldjis JIS C 6226-1978 (旧JIS)
newjis JIS X 0208-1983 (新JIS)
jis1990 JIS X 0208-1990
euc-jp 日本語 EUC コード
sjis Shift-JIS コード
euc-jp/sjis 日本語 EUC or Shift-JIS コード
data おそらくバイナリコードかデータ
unknown 漢字コード判別不能 (ほぼ data に同じ)
jisx0201(roma) JIS X 0201-1976 (ローマ字) だけ (含 ASCII コード)
jisx0201(kana) JIS X 0201-1976 (カナ) だけ (含 ASCII コード)
jisx0212 JIS X 0212-1990 (補助漢字) だけ (含 ASCII コード)
oldjis+jisx0201 JIS C 6226-1978 (旧JIS) + JIS X 0201-1976 (カナ)
oldjis+jisx0212 JIS C 6226-1978 (旧JIS) + JIS X 0212-1990 (補助)
oldjis(broken) JIS C 6226-1978 (旧JIS) (おそらく壊れている)
newjis+jisx0201 JIS X 0208-1983 (新JIS) + JIS X 0201-1976 (カナ)
newjis+jisx0212 JIS X 0208-1983 (新JIS) + JIS X 0212-1990 (補助)
newjis(broken) JIS X 0208-1983 (新JIS) (おそらく壊れている)
jis1990+jisx0212 JIS X 0208-1990 + JIS X 0212-1990 (補助)
jis1990(broken) JIS X 0208-1990 (おそらく壊れている)
euc-jp+jisx0212 日本語 EUC コード + JIS X 0212-1990 (補助)
euc-jp(broken) 日本語 EUC コード (おそらく壊れている)
sjis(broken) Shift-JIS コード (おそらく壊れている)

ダウンロード

wkf 1.3.11-RELEASE(2007/07/06)

パッケージ名 サイズ MD5値
wkf-1.3.11.tar.gz 114,283 4c4faa7c60d14252ee03a6773a2b991d
wkf-1.3.11.tar.bz2 101,426 a48f7744d1fbbcdad45ce877cfc6e0f3

wkf 1.2.2-RELEASE(2001/01/12)

パッケージ名 サイズ MD5値
1.2.2-RELEASE (gzip版) 81,186 b9ec1a812e8b0cc27c95aeb9262e022c
1.2.2-RELEASE (bzip2版) 74,233 fa145e9223920f52707c656e34fdfd8e

Win32版実行ファイルアーカイブ

木村@キヤノンさんのページ

Linux版ファイルアーカイブ(by 山縣 敦さん)

RPM形式: wkf-1.2.x | Slackware用: wkf-1.2.x

Google