.TH jstrings "July 29, 2004" "" "" .RS 名前 jstrings - ファイル中の表示可能な文字列(日本語を含む)を表示する。 .PP 書式 jstrings [\fB-i\fP 文字コード] [\fB-n\fP 文字数|-文字数] [\fB-fpcts\fP] [ファイル名] .PP 説明 jstrings は指定されたファイル中に含まれる表示可能な文字列を表示する。 文字列と認識できる文字コード(符号化方式)はオプションにより指定でき る。デフォルトでは4文字以上の長さのものを表示可能な文字列とするが、 以下で説明するオプションにより変更することができる。 .RS .PP ファイル名が指定されないときは標準入力を対象とする。 .RE .PP オプション \fB-i\fP 文字コード ファイルに含まれるであろう文字列の文字コード(符号化方式)を指定 する。現在指定可能な文字コードは以下の通り。 .RS .PP ANSI_X3.4-1968 .SS ASCII .SS US .TP .B US-ASCII ファイルに含まれる ASCII 文字列のみを対象とする。 .PP Windows-31J CP932 MS932 ファイルに含まれる CP932 の文字列を対象とする。これは Shift_JIS + いわゆる機種依存文字のことである。 .PP Shift_JIS MS_Kanji ShiftJIS .SS SJIS ファイルに含まれる Shift_JIS の文字列を対象とする。これには いわゆる「機種依存文字」は含まれない。 .SS EBCDIC ファイルに含まれる EBCDIC の文字列を対象とする。 .RE .PP ISO-2022-JP ISO2022JP .SS JIS ファイルに含まれる \fBISO-2022-JP\fP(を拡張したもの) の文字列を対 象とする。詳細は後述の ISO-2022-JP の項を参照のこと。 .RE .PP UTF-16 UTF16 ファイルに含まれる UTF-16 の文字列を対象とする。バイトオーダ マーク(BOM)を検出した時には、BOMに従いビッグエンディアンとリ トルエンディアンを切り替える。 .RS .PP UTF-16LE UTF16LE ファイルに含まれる UTF-16LE の文字列を対象とする。バイトオー ダマーク(BOM)は読み捨てられる。 .PP UTF-16BE UTF16BE ファイルに含まれる UTF-16BE の文字列を対象とする。バイトオー ダマーク(BOM)は読み捨てられる。 .RE .PP \fB-n\fP 文字数 -文字数 指定された文字数以上の長さの文字列を表示する。指定は文字数 単位であるためASCII文字に限らず漢字なども1文字と数えられる。 デフォルトは4。 .RS .PP \fB-f\fP それぞれの文字列の前にファイル名を表示する。 .PP \fB-p\fP それぞれの文字列の前に文字列が見つかったファイル内での先頭 からの位置を表示する。 .PP \fB-c\fP それぞれの文字列の前にその文字列のコード名を表示する。 .PP \fB-t\fP (可能であれば)標準出力をテキストモードで使用する。 デフォルトはバイナリモードである。 .PP \fB-s\fP 文字列の先頭バイトがマルチバイト文字の先行バイトであった場 合には、それを読み捨て、2バイト目以降から文字列が始まってい るものとする(Shift_JISおよびWindows-31Jでのみ有効)。 .PP -? ヘルプメッセージを表示する。 .RE .PP ISO-2022-JP \fB-i\fP オプションに ISO-2022-JP を指定したときには、RFC1468 で規定され る ISO-2022-JP を独自に拡張した文字列をファイルから検索する。この 拡張は以下のとおり。 .RS .IP 1) 4 ESC 2/4 4/9 というエスケープシーケンスにより JIS X0201 仮名文字 集合(いわゆる半角カタカナ)へ切り替える。 .IP 2) 4 CR LF により ASCII に切り替える。 .PP また、エスケープシーケンスに続かない、文字集合の不明なバイト列は \fB-i\fP ISO-2022-JP:SUBCODE という形でその扱いを指定することにより特定 の文字集合とみなすことができる。SUBCODE に指定できる値は以下のとお り。 .SS ASCII 文字集合が不明なバイト列を ASCII とみなす。 X0201-ROMAN 文字集合が不明なバイト列を JIS X0201 ラテン文字集合とみなす。 X0208-1978 文字集合が不明なバイト列を JIS X0208-1978 とみなす。 X0208-1983 X0208-1990 文字集合が不明なバイト列を JIS X0208-1990 とみなす。 X0201-KANA 文字集合が不明なバイト列を JIS X0201 仮名文字集合とみなす。 .SS ALL 文字集合が不明なバイト列を、上記の文字集合すべてに可能な限り 当てはめる。 .SS IGNORE 文字集合が不明なバイト列は無視して読み捨てる。 .RE .PP 例えば、\fB-i\fP ISO-2022-JP:ASCII と指定したときには、文字集合の判断 がつかないバイト列は、ASCII文字列として扱われる。 SUBCODE を省略した場合には IGNORE が指定されたものとみなす。 .RS .PP バグ 充分にテストされていないのでバグは多々あると思われる。 .RS .PP ファイル内に含まれる文字列の長さが65535バイトを超えるときにはうま く表示できない。これは、vstr.c 内の MAX_BUF_SIZE 定数により制限さ れている。 .PP EBCDIC を指定したときには \fB-f\fP \fB-p\fP \fB-c\fP で表示される情報は ASCII である ため、表示が乱れる。 .PP UTF-16* で検出可能な文字集合はCP932と同一の範囲内のみである。 .PP UTF-16* を指定したときには結果は常に BOM を先頭に付加したUTF-16BE で出力される。また、\fB-f\fP でファイル名を表示させた時に、ファイル名に 非ASCII文字が含まれている場合、それは文字化けを引き起こす。 .PP \fB-i\fP オプションは同時に複数指定することも可能であるが、その場合、表 示は複数の文字コードが入り混じったものとなる。 将来的には UTF-8 も対象とし、表示するために使用する文字コードも指 定できるようにしたい。 .RE .PP 著者 はせがわ ようすけ