WKF(1)

名称
wkf - WALL's Kanji Filter - 漢字コード変換フィルタ

書式
wkf [-{j|e|s|c|C}] [-mzALT] [-{J|E|S}] [-{M|D|U}] [<file>...]

解説
wkf とは、日本語漢字コード変換フィルタです。

日本語 EUC、シフト JIS、JIS (JIS C 6226-1978, JIS X 0208-1983, JIS X 0208-1990, JIS X 0212-1990) のそれぞれのコード系の相互変換を行います。JIS 片仮名(SJIS 半角 カナ)文字にも対応しており、自動的に 2byte コードの片仮名に変換します。

入力漢字コードは自動判別し、SJIS 半角カナ文字が含まれていても正しく判別します。 また、漢字コードの判別だけの使い方も可能です。2byte 英数字を 1byte 英数字に変換 する機能もあります。

ただし、シフト JIS と日本語 EUC コードが重複するコード空間だけからなる文書の 場合には、漢字コードを正しく判別できないことがあります。そのときは、デフォルト では make 時に設定したコードとして判別します。

また、入力時のファイルの行末が復帰＋改行コード(DOS ファイル)や復帰コード (Macintosh ファイル)の場合は自動的に改行コードに変換されて処理されます。 ファイルの漢字コードの置換も可能です。

オプション

-h  wkf の簡単な説明を表示します。

-v  wkf のバージョン情報を表示します。

-j  出力漢字コードを JIS (JIS X 0208-1983) コードにします。

-e  出力漢字コードを日本語 EUC コードにします。

-s  出力漢字コードをシフト JIS コードにします。

-c  変換出力を行わずに、入力コードの判定のみを行います。 判定結果による戻り値は以下のとおりです。
         戻り値      |            説明
    -----------------+-------------------------------------------------
    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 コード          (おそらく壊れている)
    -----------------+-------------------------------------------------
    ※ data が返されるのは、入力ファイルがバイナリかデータファイルなどの場合です。

    ※ unknown が返されるのは、入力ファイルがバイナリ、ディレクトリ、 スペシャル・ファイルなどの場合です。

-C  変換出力を行わずに、入力コードの判定のみを行います。 このとき、入力ファイル名も表示します。

-m  MIME エンコード文字列（=?ISO-2022-JP?B?......?= のような文字列）を デコードします。

-z  入力に 2byte 英数字が含まれていれば 1byte 英数字に変換します。 (つまり Ａ→A, ０→0 という変換を行います。)

-A  ファイル内容をコード変換して置き換えます。入力ファイルは .bak の拡張子をつけた 名前で保存されます。コード変換の必要のない場合あるいは不可能の場合は、ファイル の置き換えは行われません。変換後のファイルのパーミッションは入力ファイルと同一 のものになります。

-L  漢字コード変換を行単位で行います。 ブラウザのブックマークファイルなど行単位で漢字コードの違うファイルの 漢字コード変換に有効です。ただし、動作は遅くなります。

-T  置き換えたファイルのタイムスタンプを入力ファイルと同一にします。 -A オプションと同時に指定しないと意味を持ちません。

-J  入力コードの自動判別を行わず、常に入力漢字コードを JIS として扱います。しかし、 -c および -C オプションと併用した場合は、意味を持ちません。

-E  入力コードの自動判別を行わず、常に入力漢字コードを日本語 EUC として扱います。 しかし、 -c および -C オプションと併用した場合は、意味を持ちません。

-S  入力コードの自動判別を行わず、常に入力漢字コードをシフト JIS として扱います。 しかし、 -c および -C オプションと併用した場合は、意味を持ちません。

-M  出力コードの行末を復帰(CR)コード(Macintosh 形式)にします。

-D  出力コードの行末を復帰＋改行(CR+LF)コード(DOS 形式)にします。

出力コードの行末を改行(LF)コード(Unix 形式)にします。

実行例
1.  README を日本語 EUC コードに変換し README.euc ファイルに保存します。
        % cat README | wkf -e > README.euc
2.  README を JIS コードに変換し、入力ファイルを README.bak で保存します。
        % wkf -Aj README
3.  README を JIS コードに変換し、入力ファイルを README.bak で保存します。 このとき、出力ファイルのタイムスタンプを入力ファイルと同一にします。
        % wkf -ATj README
4.  README を日本語 EUC コード、また 2byte 英数字を 1byte 英数字に変換します。
        % wkf -ze README > README.euc
5.  README をシフト JIS コードに変換し、行末は CR(Macintosh 形式)とします。
        % wkf -sM README > README.mac
6.  README をシフト JIS コードに変換し、行末は CR+LF(DOS 形式)とします。
        % wkf -sD README > README.dos
    README ファイルの漢字コードチェックを行います。
        % wkf -c README

バグ(仕様)
シフト JIS コードでの JIS X 0201-1976(半角カナ)だけの文書の場合、日本語 EUC コードの文書との判別が正しく行われないことがあります。その場合、誤った漢字コー ド変換を行うことがあります。

-S や -E オプションを指定した場合、処理が不安定になることがあります。

関連コマンド
ack(1), nkf(1) kcc(1)

著作権
Copyright (c) 1997-2003 阿部康一／Kouichi ABE (WALL), All rights reserved. <kouichi@MysticWALL.COM>