nkf(1) FreeBSD 一般コマンドマニュアル

nkf

前のページ 上に戻る 次のページ

nkf



SYNOPSIS

       nkf [options] [file]


DESCRIPTION

       nkf はネットワークでメールやニュースの読み書きをするために
       作られた、漢字コードの変換フィルタである。

       このnkfの特徴としては、入力漢字コード系の統計的な自動認 識
       機能がある。このため、利用者は、入力漢字コード系が何である
       かを知らなくても、出力漢字コード系のみ指定すれば良いことに
       なる。ただ、この判定機構は、理論的には完全ではないが、通常
       のニュースやメールのメッセージについては確実に動作する安全
       なものにはなっている。

       現在、nkfが認識できる入力の漢字コード系は、いわゆる「JISコ
       ード」(ISO- 2022-JPに基づくもの)、MS 漢 字 コ ー ド( シ フ
       トJIS)、 日本語EUC(AT&Tコード)のいずれかである。出力する漢
       字コード系も、この3種類である。

       入力は、ファイルを指定しなければ、標準入力となる。出力は標
       準出力である。

       指定できるオプションは、以下の通り。-mu のように続けること
       ができる。

       -b     バッファリング出力を行う。(デフォルト)

       -u     出力時に、バッファリングしない。  rsh  localhost  |
              nkf -u というように使う。

       -t     何もしない。

       -j     JISコードを出力する。(デフォルト)

       -e     EUCコードを出力する。

       -s     シフトJISコードを出力する。

       -i?    JIS漢字を指示するシーケンスとして ESC-'$'-?を使用す
              る。 (デフォルトは、ESC-'$'-'B')

       -o?    1バイト英数文字セットを指示するシ ー ケ ン ス と し
              て、ESC-'('-?  を  使  用  す る。  ( デ フォ ル ト
              は、ESC-'('-'B')

       -r     ROT13/47の変換をする。

       -v     バージョンを表示する。

       -T     テキストモードで出力する。(MS-DOS上でのみ効力 を 持
              つ)

                      解読してしまいます。

       -l     0x80-0xfeのコードをISO-8859-1 (Latin-1)として扱う。
              JISコードアウトプットとの組合せみのみ有効。
              -s, -e, -xとは両立しない。

       -f?    一行?文字になるように簡単な整形をおこなう。デフォルトは
              60文字である。

       -Z     X0208中の英数字と若干の記号をASCIIに変換する。-Z1 はX0208間隔をASCII
              spaceに変換する。-Z2はX0208間隔をASCII space 二つに変換する。趣味によって
              使い分けてほしい。

       -J -E -S -X -B
              期待される入力コードの性質を指定する。

              -J     ISO-2022-JPを仮定する。

              -E     日本語EUC(AT&T)を仮定する。

              -S     MS漢字を仮定する。X0201仮名も仮定される。

              -X     MS漢字中にX0201仮名があると仮定する。

              -B     壊れた(Broken)JISコード。ESCがなくなったと仮定する。

                      -B1     ESC-(, ESC-$ のあとのコードを問わない

                      -B2    改行のあとに強制的にASCIIの戻す

       -x     通常おこなわれるX0201仮名->X0208の仮名変換をしないで、
               X0201仮名を保存する。入力は、MS-Kanjiの1byte仮名、SO/SI、
              ESC-(-I, SSOを受け付ける。出力は、日本語EUC中ではSSO、
              JISでは ESC-'('-I を使う。

       -M     MIME に変換する。JISにコード変換してからbase64されます。


       -M

       -MB

       -O     ファイルに出力する。Unixでは不要な機能だがWindowsやMSDOSでは
              必要らしい。直後の引き数でなく、最後のファイル名が出力ファイ
              ル名となり上書きされてしまうので注意。ファイル名がない場合は、
              適当に決められる(デフォルト nkf.out)。

       -c     NLあとにCRを付加する。

       -d     NLあとのCRを削除する。

       -L[wmu] B>改B>行B>モB>ーB>ド
                   --version
                   --        これ以降のオプションを無視する


AUTHOR

       市   川      至  ichikawa@flab.fujitsu.co.jp   (was
       ichikawa@fujitsu.JUNET)



ACKNOWLEDGE

       morb@fujitsu,        kiss@ayumi.stars.flab.fujitsu,
       cen122@flab.fujitsu,  yuki@flab.fujitsu 他、fujitsu
       & flab.fujitsuの皆 さ ん の 協 力 に 感 謝。  shin-
       oda@cs.titech,   kato@cs.titech,  uematsu@cs.titech
       TNX kono@ie.u-ryukyu.ac.jp



BUGS

       実は、入力のコード系の判定は、EUCとシフトJISとの 自
       動 判定であり、最初に特定できる文字が来た時点で確定
       してしまう。そして、特定不能の間は保留バッファに た
       めておかれ、確定後に処理される。このため、

       1)     7ビットJISは常に認識される。シフトJIS、EUC混
              合もほとんどの場合は問題がない。ただし、

       2)     シフトJISのX0201仮名とEUCが識別できない。 し
              たがって、デフォルトではシフトJISのX0201仮名
              はないと仮定している。

       3)     ちょっと、のろい。(初期の版よりは改良され て
              いる)

       JIS漢字の新旧版の区別とか、ASCIIとJISローマ字の区別
       などについては保存されない。

       このフィルタの変換は、コード系に対応した一括写像 を
       施すだけなので、外字や特殊記号や罫線素片など、JIS第
       一、第二水準表において定義されていないコードに各 社
       に より割り当てられた文字がどうなるかまでは関知しな
       い。そして、第二水準がないとかあるとかによ る 問 題
       は、 このフィルタの範囲外と思える。それらは、書き手
       の責任でなんとかしてもらいたい。

       いずれにせよ、通常のニュースの記事については問題 は
       なく変換できるはずである。(と思うのだが、今ひとつ自
       信はない)



kono@csl.sony.co.jp (Shinji Kono) による変更。

       nkf 1.4 の冗長だけど昔は便利だったオプションのい く
       つかは削除されている。 - -n -Bなど。

       い。ISO-8859-1   出力はJIS コード出力としか両立しな
       い。

       Fold 機能はfmtと異なり行頭の空白を無視する。禁則 処
       理はあるが指定された長さ+5で強制改行する。

       X0201仮名はrot47されない。



nkf 1.6 kono@ie.u-ryukyu.ac.jp (Shinji Kono) による変更。

       MIME   のチェックをきびしくして(遅くなった分)安全に
       なった。したがって複数行にまたがるMIMEはdecodeさ れ
       ない。 MIME の直後の空白は読み飛ばす。Q-Encding の_
       は空白に変換される。
        -B のlevelを0,1,2   に 増 や し た。MIME のbase64,
       Q-Encoding を解読する機能を付けた。ヘッダなどは解読
       しないので、Encodeされた部分だけを通す必要があ る。
       -mB  は、nkf1.5と違う動きをするので、-B -m とするこ
       と。



nkf 1.6.1

       -Z で〜 -> ~の変換を止めた。 -Z1 でX0208間隔->ASCII
       space の 変 換 を おこなう。 -Z2 でX0208間隔->ASCII
       space 2個の変換をおこなう。

       kabe@dais.is.tohoku.ac.jp (Taketo Kabe) による日 本
       語roff のソースができました。



nkf 1.7

       ESC-$-(-B などにも対応するようにしました。

       MIME の チェッ ク が 厳 し す ぎ る よ う に 思うの
       で、STRICT_MIME をdefine した時にのみに厳しいチェッ
       クを行う用にしました。

       nkf   は、 本来、network 上に出して安全なコードをデ
       フォルトで出力すべきであるので、デフォルトの出力 コ
       ー ド をShift JIS, EUC などにするのは望ましくないで
       しょう。

       他の人と少し話して、copy right の非営利の条件を緩め
       ました。

       Perl Extension として使えるようになりました。

       patch 1 for 1.7


       version が間違ってました。



       あと NKF.xs で
           argc  = items - 1; を使うようにしました。(by 木
       村 巌 <iwao@math.tsukuba.ac.jp>)



nkf 1.9

       MIME エンコードの機能を付けました。コード変換されて
       し まうので、画像とかの単なるエンコーダとしては使え
       ません。かなりいい加減です。Subject やメールアド レ
       スを、エンコードする時に便利なように変換します。

       で、 少し言い訳します。ほとんどのアスキー文字は変換
       しません。だから、これで変換したから安全なメール ア
       ド レスになるなんてことはありません。でも、この方が
       Subject: 行や From: 行を変換するには、便利だろう と
       僕は想像します。たまに76文字/行を越えることがありま
       す。これは規格違反なんですが、これは、直すのは結 構
       め ん どう。良いアルゴリズムがあるなら採用します。(
       ないんだったら、こんな規格はなくして欲しいよ)

       nkf -M | nkf で、もとに戻らないのは、デコード の 際
       にMIME の後の改行を無視しないのと、エンコードの時に
       改行を含めてエンコードしないからです。これを、い つ
       無 視するのかを自動的行うことは、できない規格になっ
       ているようです。nkf -MB | nkf -mB では、ちゃんと 元
       に戻ります。

       2.0  の準備。それぞれの変換をモジュールにして、オプ
       ションにしたがって接続するようにしました。これ で、
       比較的楽に拡張できるようになりました。


             getc <-- iconv --> oconv --> other conversion
       --> putc


       という形で、順に呼び出されます。


       長いオプション名を許すようにしました。
           --mac
           --jis などが使えます。


       MIME エンコードの機能を追加しました。(これを追加 し
       た 時にあまりにスパゲティになったので、モジュールに
       書き直しました。ついでに、 MIMEのstrict/non  strict
       を選択できるようになりました。



ABELNET VPSサービス