kcodeとは

目的

「Shift_JISで『あ』のコードってなんだっけ?」とか「UCS-2のU+3042ってどの文字だっけ?」といった際に、 ターミナルで手軽に確認できるようにするツールである。

機能

標準入力もしくはコマンドライン引数から、 文字そのものか文字エンコーディングの16進数表記を受け取り、 各種文字エンコーディングでの16進数表記とUnicode, IncのUnihan DatabaseのURLを出力する。
出力する16進数表記の文字エンコーディングの種類は以下の通り。

  • Shift_JIS
  • EUC-JP
  • ISO-2022-JP
  • UCS-2
  • UTF-8

グリフを確認するにはUnihan DatabaseのURLにアクセスすればよい。

必要なもの

  • Perl 5
  • JcodeもしくはEncodeモジュール

確認していないがPerl-5.005でも動くかもしれない。
Encodeがあればそれを使う。 EncodeがなければJcodeを使う。EncodeもJcodeもない場合は動作しない。 Perl-5.8以降ならばEncodeは付属している。 Perl-5.6以前ならば以下のようにしてCPANからJcodeをインストールする必要がある。

# perl -MCPAN -e 'install Jcode'

開発環境

以下のような環境で開発しているので、これらと同じような環境であれば動作すると思われる。

  • Linux, kernel-2.4.25, glibc-2.3.2
  • Perl-5.8.2 (useithreads)
  • Jcode-0.83
  • Encode-1.99
  • Linux, kernel-2.6.4, glibc-2.2.5
  • Perl-5.6.1
  • Jcode-0.83

注意点

  • 文字エンコーディング変換の正確性は変換モジュール(Encode, Jcode)の実装に依存する。
  • Encodeモジュールを使う場合、Shift_JISはCP932として、UCS-2はUCS-2BEとして変換、出力する。

ダウンロード

name version date size
kcode-1.0.gz 1.0 2004-04-01 16:50:05 2.4 KB

使い方

Shift_JISで『あ』のコードってなんだっけ?

$ echo 'あ' | kcode
euc-jp        : あ                 (あ)
======================================================================
cp932         : 82A0               "\x82\xa0"
euc-jp        : A4A2               "\xa4\xa2"
iso-2022-jp   : 1B244224221B2842   "\x1b\x24\x42\x24\x22\x1b\x28\x42"
ucs-2be       : 3042               "\x30\x42"
utf8          : E38182             "\xe3\x81\x82"
http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=3042

                                                          using Encode

UCS-2のU+3042ってどの文字だっけ?

$ kcode -i ucs2 -x 3042
ucs-2be       : 3042               ()
======================================================================
cp932         : 82A0               "\x82\xa0"
euc-jp        : A4A2               "\xa4\xa2"
iso-2022-jp   : 1B244224221B2842   "\x1b\x24\x42\x24\x22\x1b\x28\x42"
ucs-2be       : 3042               "\x30\x42"
utf8          : E38182             "\xe3\x81\x82"
http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=3042

                                                          using Encode

詳しい使い方

kcode [ -d level ] [-x] [-i CES] [-o CES] char|hex
-x
入力を、文字ではなく文字エンコーディングの16進数表記として処理する。
-i
入力文字の文字エンコーディングの指定。省略時はeucとなる。
-o
出力文字列の文字エンコーディングの指定。省略時はeucとなる。
-d
デバッグモード。デバッグレベルを数値(1か2)で指定する。
-h
ヘルプを表示して終了する。
CES
文字エンコーディング(Character Encoding Scheme)。 以下のもののいずれか。
  • sjis
  • euc
  • jis
  • ucs2
  • utf8
char
文字そのもの。
hex
文字の16進数表記。

例えば、0x82a0をShift_JISとして渡し、その結果をUTF-8で表示するには以下のようにする。

kcode -x -i sjis -o utf8 82a0

目次

リンク