hexja

Path: hexja  (SVN)
Last Update: Sun Feb 04 15:30:42 +0900 2007

NAME

hexja - 日本語対応 16 進数ダンプツール

SYNOPSIS

hexja [options] [filename…]

hexja -r [filename…]

DESCRIPTION

指定されたファイルまたは標準入力の内容を16進数と文字列で表示します。 その際、日本語らしき部分は日本語で表示します。

OPTIONS

オプションは環境変数 HEXJA_OPTIONS に設定しておくことができます。

入力文字コード

入力文字コードのデフォルトは、 環境変数 LANG が存在すれば、それに合わせた文字コードになります。 LANG が存在しないか、適切な日本語文字コードを LANG から判断できない場合は、 システムによって CP932 (Windows) か UTF-8 (その他のシステム) になります。

-i INPUT_CODING_SYSTEM
入力文字コードを指定します。 UTF-8, CP932, SHIFT_JIS, UTF-16BE, UTF-16LE, EUC-JP の何れかを指定可能です。
-U, —iunknown
日本語に関する処理をしません。
-S
入力をシフト JIS 系であると仮定します。 Windows 上では —icp932 と同等です。 その他のシステムでは —isjis と同等です。
—icp932
入力文字コードを CP932 か ISO-2022-JP-1 だと仮定します。
—isjis
入力文字コードを SHIFT_JIS か ISO-2022-JP-1 だと仮定します。
-E, —ieuc
入力文字コードを EUC-JP か ISO-2022-JP-1 だと仮定します。
-8, —iutf8
入力文字コードを UTF-8 か ISO-2022-JP-1 だと仮定します。
—iutf16, —iutf16le
入力文字コードを UTF-16LE だと仮定します。
—iutf16be
入力文字コードを UTF-16BE だと仮定します。
—2byte-aligned
UTF-16 が 2 バイト境界に整列していると仮定します。 —iutf16, —iutf16le, —iutf16be が指定された時のみ意味を持ちます。
—siso
ISO 2022 の shift-in, shift-out を利用した半角カタカナが 入力に含まれると仮定します。 —iutf16, —iutf16le, —iutf16be が 指定されなかった時のみ意味を持ちます。

出力文字コード

-o OUTPUT_CODING_SYSTEM
出力文字コードを指定します。 UTF-8, CP932, SHIFT_JIS, EUC-JP, ISO-2022-JP, ISO-2022-JP-1 の何れかを指定可能です。
-s
Windows 上では —ocp932 と同等です。 その他のシステムでは —osjis と同等です。
—ocp932
出力文字コードを CP932 にします。
—osjis
出力文字コードを SHIFT_JIS にします。
-e, —oeuc
出力文字コードを EUC-JP にします。
—outf8
出力文字コードを UTF-8 にします。

出力形式の指定

-c, —color
表示できない文字 (コントロール文字や、日本語文字コードで表現できない文字など) に色をつけて表示します。 端末へ表示する場合のデフォルトです。
-d, —dot
表示できない文字 (コントロール文字や、日本語文字コードで表現できない文字など) を「.」で表示します。 hexja の出力をパイプに通したりした場合のデフォルトです。
—html
スタイルシート (CSS) を利用した HTML で出力します。 -d オプションが指定されている時は、CSS は利用されず、色もつきません。
—html-no-css
スタイルシートを利用せず、<font> タグを利用して HTML を出力します。 -d オプションが指定されている時は、 <font> タグは利用されず、色もつきません。

出力時の色の指定

出力時の色は、—html, —html-no-css が 指定されている場合は #RRGGBB の形式で指定することができます。 又、showrgb コマンド (/usr/X11R6/bin/showrgb など) が存在する場合には 色の名前で指定することもできます。

それ以外の場合は、ISO 6429 の色コードを指定します。 たとえば、黒:30, 赤:31, 緑:32, 黄:33, 青:34, 紫:35, 水:36, 白:37 などです。 (さらに、—color-letter ‘1;30;43’ などと指定することで、 太字、黒色、背景黄色で表示することもできます)

—color-letter COLOR
通常の文字の色を設定します。 デフォルトは端末の文字色、 あるいは、ブラウザのデフォルトの文字色になります。
—color-non-letter COLOR
表示できない文字の色を設定します。 デフォルトでは青 (34, #aaaaff) になります。
—color-breaked-letter COLOR
文字の一部である部分の色を設定します。 デフォルトでは赤 (31, #ff0000) になります。
—color-iso-seq COLOR
ISO-2022-JP-1 のエスケープシーケンスの色を設定します。 デフォルトでは水色 (36, #00ffff) になります。

その他

-r, —restore
hexja の出力形式をバイナリへ変換します。
 % hexja < foo | hexja -r > bar

 % cat < foo > bar

と同じ結果になります。

-h, —help
ヘルプを表示します。
—version
バージョンを表示します。

旧バージョンとの違い

旧バージョン (hex 2.04) では以下のオプションが使用可能でしたが、 廃止されました。同等機能の別のオプションを使用してください。

-oe, -os, -oj, -ie, -is, -iu, -cs1, —colorstring1, -cs2, —colorstring2 -dsiso, —disablesiso, +siso, —enablesiso,

旧バージョンでは ISO 2022 の shift-in, shift-out を利用した半角カタカナは デフォルトで認識されましたが、 hexja では —siso オプションを指定しないと認識しません。

以下のオプションは廃止され、代替機能は存在しません。

-b, —bold, -t, —text, -u, —underline,

旧バージョンでは環境変数は HEX_OPTIONS を参照しますが、 hexja では HEXJA_OPTIONS を参照します。

TIPS

hexja の出力を less や lv などへ渡すとそのままでは色が付きませんので、 以下のようにすると良いでしょう。

 % hexja -c foo | less -r
 % hexja -c foo | lv -c

NOTE

  • SHIFT_JIS の 0x7e は Unicode では OVERLINE (U+203e) へマップされているが、 画面には代わりに ~ (U+007e) を表示しています。 これは Windows や Mac OSX では OVERLINE を端末上で表示すると、 全角文字の幅があるため都合が悪いからです。
  • 合成用の濁点 (U+3099) と半濁点 (U+309a) は 通常の濁点 (U+309b) と半濁点 (U+309c) を使用して表示します。
  • 外字は表示されません。
  • 全角チルダ (U+ff5e) は WAVE DASH (U+301c) を使用して 表示されることがあります。
  • JISX0213 には対応していません。

SEE ALSO

od(1), hexdump(1), jhd(1), less(1), lv(1)

AUTHOR

多賀奈由太 (TAGA Nayuta)

HOMEPAGE

sourceforge.jp/projects/hexja/

COPYRIGHT

いわゆる BSD ライセンスです。

Copyright (c) 1996-1998, 2006 TAGA Nayuta All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Required files

iconv   optparse  

Methods

Public Instance methods

入力文字コードに従って適切な入力分解関数を呼ぶ。

EUC-JP 入力を分解する関数。 uio は UndoableIO のインスタンス。

SHIFT_JIS, CP932 入力を分解する関数。 uio は UndoableIO のインスタンス。 isCP932 が真の時は CP932, 偽の時は SHIFT_JIS を取り扱う。

UTF-16 入力を分解する関数。 uio は UndoableIO のインスタンス。 isLE が真の時は UTF-16LE, 偽の時は UTF-16BE。

utf8 入力を分解する関数。 uio は UndoableIO のインスタンス。

文字コードを考慮せず入力を解釈する関数。 uio は UndoableIO のインスタンス。

ISO-2022-JP 系入力を分解する関数。

ISO-2022-JP 系文字列にならない文字や 8 ビット文字を見つけた時に ISO-2022-JP 系文字列は終了したとみなし、この関数から return する。 この関数は inputSHIFT_JIS, inputEUCJP, inputUTF8 の中から 呼ばれることを想定している。

uio は UndoableIO のインスタンス。 show は Show のインスタンス。 input7bitType は :ascii か :jisRoman。

ruby 1.9 での仕様変更を吸収するしくみ。 ruby 1.8 では、引数をそのまま返す。

ruby 1.9 での仕様変更を吸収するしくみ。 ruby 1.9 では、String#ord を呼び出す。

text が色かどうかのチェックをし、色を返す。 text が #RRGGBB か showrgb(1) で得られる色名ならば #RRGGBB 形式で返す。 text が ISO 6429 の色コードの場合はそのまま返す。 それ以外は、エラーを表示して終了する。

hexja の出力形式をバイナリへ変換する。

 % hexja < foo | hexja -r > bar

 % cat < foo > bar

と同じ結果になるようにする。

UTF-8 のテキストを $defaultCS 文字コードへ変換する。 Iconv 関連の例外が発生する可能性がある。

str を文字コード cs で解釈した時に得られる UNICODE 文字列の、 最初の文字の UNICODE を返す。 Iconv 関連の例外が発生する可能性がある。 cs に UTF-16 系を指定してはいけない。

byteCount バイトの UTF-8 が表現可能な UNICODE のビット数

[Validate]