
Ubuntu日本語フォーラム

ログインしていません。
なぜか見知らぬ方から、直接メールで nkf の使い方を聞かれたのでここに書いておきます。以下 man
の抜粋です。
DESCRIPTION
nkf はネットワークでメールやニュースの読み書きをするために作られた、漢
字コードの変換フィルタである。
このnkfの特徴としては、入力漢字コード系の統計的な自動認識機能がある。こ
のため、利用者は、入力漢字コード系が何であるかを知らなくても、出力漢字
コード系のみ指定すれば良いことになる。ただ、この判定機構は、理論的には
完全ではないが、通常のニュースやメールのメッセージについては確実に動作
する安全なものにはなっている。
現在、nkfが認識できる入力の漢字コード系は、いわゆる JIS コード
(ISO-2022-JP に基づくもの)、Shift_JIS (MS 漢字コード)、日本語 EUC (AT&T
コード)、UTF-8、UTF-16 のいずれかである。出力する漢字コード系も、これら
である。入力は、ファイルを指定しなければ、標準入力となる。出力は標準出
力である。
OPTIONS
指定できるオプションは、以下の通り。 -mu のように続けることができる。
-j JIS コードを出力する。(デフォルト)
-e EUC コードを出力する。
-s Shift_JIS コードを出力する。
-w -w8[0] -w16[BL][0]
Unicode を出力する。
-w -w80
UTF8 コードを出力する。 (BOM 無し)
-w8 UTF8 コードを出力する。
-w16 -w16B0
UTF16 コードを出力する。 (Big Endian / BOM 無し)
-w16B
UTF16 コードを出力する。 (Big Endian / BOM 有り)
-w16L
UTF16 コードを出力する。 (Little Endian / BOM 有り)
-w16L0
UTF16 コードを出力する。 (Little Endian / BOM 無し)
-m[BQSN0]
MIME を解読する。(デフォルト) ISO-2022-JP (B encode) と ISO-8859-1
(Q encode) のみを解読する。 ISO-8859-1 (Latin-1) を解読する時は、-l
フラグも必要である。 -m0 では MIME を解読しない。 -mB, -mQ では
、BASE64, Q encode されているものとして処理する。
-mB MIME base64 stream を解読する。ヘッダなどは取り除くこと。
-mQ MIME quoted stream を解読する。
-mS MIME のチェックを厳しくする (デフォルト)
-mN MIME のチェックを緩くする
-m0 MIME を解読しない。
-mS は、宣言の内容と、その後に続く encoded-text の整合性をチェック
する。 -mN は、改行で切られた MIME なども解読する。解読が止まらない
こともある。
-M[BQ]
MIME に変換する。 JIS にコード変換してから BASE64 される。
-M ヘッダ形式に変換する
-MB base64 stream に変換する
-MQ Quoted stream に変換する
-J -E -S -W
期待される入力コードの性質を指定する。
-J ISO-2022-JP を仮定する。
-E 日本語 EUC (AT&T) を仮定する。
-S Shift_JIS を仮定する。いわゆる半角カナ (JIS X 0201 片仮名) も受
け入れる。
-W UTF-8 を仮定する。
-W8 UTF-8 を仮定する。
-W16
UTF-16 (Little Endien)を仮定する。
-W16B
UTF-16 (Big Endien)を仮定する。
-W16L
UTF-16 (Little Endien)を仮定する。
-x 通常おこなわれる、いわゆる半角カナ (JIS X 0201 片仮名) からいわゆる
全角カナ (JIS X 0208 片仮名) への変換を行わず、半角カナを保存する。
入力は、Shift_JIS の 1byte カナ、SO/SI、ESC-(-I, SSO を受け付ける。
出力は、日本語 EUC 中では SSO、JIS コード中では ESC-(-I をデフォル
トで用いる。
-X いわゆる半角カナ (JIS X 0201 片仮名) を いわゆる全角カナ (JIS X
0208 片仮名) へと変換する。
-B 壊れた (Broken) JIS コード。 ESC がなくなったと仮定する。
-B1 ESC-(, ESC-$ のあとのコードを問わない
-B2 改行のあとに強制的に ASCII に戻す
-f[m[-n]]
一行 m 文字になるように、マージンを n として簡単な整形をおこなう。
デフォルトは文字数は 60、マージンは 10 である。
-Z[0-3]
JIS X 0208 英数字と若干の記号を ASCII に変換する。つまり、全角を半
角に変換する。
-Z -Z0
Convert X0208 alphabet to ASCII.
-Z1 JIS X 0208 和字間隔を ASCII space 一つに変換する。
-Z2 JIS X 0208 和字間隔を ASCII space 二つに変換する。
-Z3 >、<、、&、を >、<、"、& に変換する。
-b バッファリング出力を行う。(デフォルト)
-u 出力時に、バッファリングしない。 ssh localhost │ nkf -u というよう
に使う。
-t 何もしない。
-I ISO-2022-JP 以外の漢字コードを〓に変換。
-i[@B]
JIS 漢字を指示するシーケンスを指定する。 (デフォルトは、ESC-$-B)
-o[BJH]
1 バイト英数文字セットを指示するシーケンスを指定する。 (デフォルト
は、ESC-(-B)
-r ROT13/47 の変換をする。
-g 自動判別の結果を出力します。
-v バージョンを表示する。
-T テキストモードで出力する。(MS-DOS 上でのみ効力を持つ)
-l 0x80-0xfe のコードを ISO-8859-1 (Latin-1) として扱う。 JIS コードア
ウトプットとの組合せみのみ有効。 -s, -e, -x とは両立しない。
-O ファイルに出力する。 UNIX では不要な機能だが Windows や MSDOS では
必要らしい。直後の引き数でなく、最後のファイル名が出力ファイル名と
なり上書きされてしまうので注意。ファイル名がない場合は nkf.out。
-L[uwm] -d -c
改行コードを変換する。
-Lu -d
unix (LF)
-Lw -c
windows (CRLF)
-Lm mac (CR)
デフォルトでは変換しない。
--ic=<input_codeset --oc=<output_codeset>>
入力・出力の漢字コード系を指定します。
ISO-2022-JP
いわゆる JIS コード。-j, -J と同じ。
ISO-2022-JP-1
RFC 2237 に定められた形式。 JIS X 0212 を含む。
ISO-2022-JP-3
RFC 2237 に定められた形式。 JIS X 0213 を含む。
EUC-JP
EUC コード。-e, -E と同じ。
EUC-JISX0213
文字集合に JIS X 0213:2000 を用いた EUC-JP。
EUC-JIS-2004
文字集合に JIS X 0213:2004 を用いた EUC-JP。
eucJP-ascii
オープングループ日本ベンダ協議会が定義した eucJP-ascii。 -x が
暗黙のうちに指定される。
eucJP-ms
オープングループ日本ベンダ協議会が定義した euc-JPms。 -x が暗黙
のうちに指定される。
CP51932
Micorosft Code Page 51932。 -x が暗黙のうちに指定される。
Shift_JIS
Shift_JIS。 -s, -S と同じ。
Shift_JISX0213
文字集合に JIS X 0213:2000 を用いた Shift_JIS。
Shift_JIS-2004
文字集合に JIS X 0213:2004 を用いた Shift_JIS。
CP932
Micorosft Code Page 932。 -x が暗黙のうちに指定される。
UTF-8 UTF-8N
BOM 無しの UTF-8。 -w, -W と同じ。
UTF-8-BOM
BOM 付きの UTF-8。-w8 または -W と同じ。
UTF8-MAC
UTF8-MAC。互換分解されたひらがな・カタカナ等を結合します。
UTF-16 UTF-16BE-BOM
BOM 有りで Big Endian の UTF-16。 -w16B, -W16B と同じ。
UTF-16BE
BOM 無しで Big Endian の UTF-16。 -w16B0. -W16B と同じ。
UTF-16LE-BOM
BOM 有りで Little Endian の UTF-16。 -w16L, -W16L と同じ。
UTF-16LE
BOM 無しで Little Endian の UTF-16。 -w16L0, -W16L と同じ。
--fj --unix --mac --msdos --windows
これらのシステムに適した変換をします。
--jis --euc --sjis --mime --base64
対応する変換をします。
--hirakana --katakana
平仮名、片仮名変換
--fb-{skip, html, xml, perl, java, subchar}
Unicode から Shift_JIS, EUC-JP, ISO-2022-JP に変換する際に、変換で
きなかった文字をどう扱うかを指定できます。
--prefix=escape charactertarget character..
EUC-JP から Shift_JIS への変換の際、2 バイト目に現れた文字の前にエ
スケープ文字をつけることができます。引数の 1 文字目がエスケープ文字
、2 文字目以降にエスケープされるべき文字を指定します。
例えば、
--prefix=\$@ とすると、Shift_JIS の 2 文字目に $ か @ が来たら、そ
の前に \ が挿入されます --prefix=@@ とすると、Shift_JIS の 2 文字目
に @ が来たら、その前に @ が挿入されます
--no-cp932ext
CP932 において拡張された、NEC 特殊文字、NEC 選定 IBM 拡張文字
(89-92 区)、IBM 拡張文字を変換しません。
--no-best-fit-chars
Unicode からの変換の際に、往復安全性が確保されない文字の変換を行い
ません。 Unicode から Unicode の変換の際に -x と共に指定すると、nkf
を UTF 形式の変換に用いることができます。 (逆に言えば、これを指定し
ないと一部の文字が保存されません)
パスに関わる文字列を変換する際には、このオプションを指定することを
強く推奨します。
--cap-input, --url-input
それぞれ :、% に続く 16 進数を文字に変換する
--numchar-input
&#....; のような Unicode 文字参照を変換する
--in-place[=SUFFIX] --overwrite[=SUFFIX] 元のファイルを変換結果で置き
換える。 複数のファイルを書き換えることも可能。 元のファイルのタイムス
タンプとパーミッションが保持される。 現在、作成日時や inode は変更され
るが、将来にわたってこの実装のままである保証は無い。
--guess
自動判別の結果を出力する
--help
コマンドの簡単な説明を表示する。
--version
nkf のバージョンを表示する。
-- これ以降のオプションを無視する
--exec-in nkf [options] --exec-in cmd args... とやると、cmd の出力を
nkf の入力とする (config.h で EXEC_IO を define してコンパイルした時の
み有効)
--exec-out
nkf [options] --exec-out cmd args... とやると、nkf の出力を cmd の
入力とする (config.h で EXEC_IO を define してコンパイルした時のみ
有効)
# man command
# command -help
# command --help
# command -?
# etc
# ほとんどのコマンドは上記の方法で使い方が表示されます。
# 覚えておくと便利ですよ。