Article View: fj.lang.visualbasic
Article #496Re: 質問:文字コードについて
From: Naomi Suzuki
Date: Wed, 04 Mar 1998 00:00
Date: Wed, 04 Mar 1998 00:00
57 lines
3031 bytes
3031 bytes
こんにちは、鈴木です。 Masashi Kusumoto wrote in message <34FB4BB6.B421C427@ksd.co.jp>... >こんにちは。レスありがとうございます。楠本と申します。 >説明不足で申し訳ありません。 >私が知りたいのは、プログラミングテクニックです。 >自己プログラムで何とかSJIS、JIS、EUC間のコードを >変換したいんですが、良いアドバイス頂けないでしょうか。 >よろしくお願いします。 > シフトJISもEUCも、JISの文字テーブルを元にしているので、以下のルールに 従って、簡単に変換することができます。 ・JISのルール JISは7bitのコード体系なので、英数記号のいわゆるASCIIテーブルしか使用 しません。ローマ字用の7bit文字セットと、カタカナ用の7bit文字セット(い わゆる半角カナ)は、SI(0Fh)/SO(0Eh)を使って切り替えます。 SI -> ローマ字テーブルへ SO -> カタカナテーブルへ 1バイト文字セットと2バイト文字セットとの切り替えには、次ぎの3文字のエ スケープシーケンスを使用します。 <ESC>$B -> 2バイト文字セットへ <ESC>(B -> 1バイト文字セットへ <ESC> = 1Bh エスケープシーケンスは他にもありますが、現在は、実質これしか使用してい ないと思います。 ・シフトJISのルール SJISは8bitが前提です。1バイトコードの中の未使用領域を2バイト文字セッ トの第1バイト目に使用することにより、エスケープシーケンス無しで2バイ トコードと1バイトコードを識別します。具体的には、「81h~9Fh」と「E0h ~FCh」が第1バイト目。「40h~7Eh」と「80h~FCh」が第2バイト目で、JIS コードの文字テーブルは、そのままのこれらコードで構成される4つのブロッ クに分割して割り当てられています(だからシフトJISなんですね)。 なお、カタカナ用のテーブルは、7bitのJISコードの最上位ビットが立ったも のになります。 ・EUCのルール EUCも8bitが前提で、こちらもエスケープシーケンスは使用しません。コー ドテーブルもJISそのままで、2バイトコードの場合には、第1バイト目の最 上位ビットを立てて識別します。1バイトコードのカタカナ用のテーブルは、 未定儀コードである8Ehを頭に付けて、こちらも2バイトで表すことになって いますが、実際にこれが使われているのかどうか、よく知りません。
Technical Details
Message-ID:
<34fd2858.1@news.works-j.com>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<34FB4BB6.B421C427@ksd.co.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 105c2e,26a49ff38f1ed394 X-Google-Attributes: gid105c2e,public From: "Naomi Suzuki" <naomi@works-j.com> Subject: Re: 質問:文字コードについて Date: 1998/03/04 Message-ID: <34fd2858.1@news.works-j.com> X-Deja-AN: 330471429 Content-Transfer-Encoding: 7bit References: <34FB4BB6.B421C427@ksd.co.jp> Content-Type: text/plain; charset="iso-2022-jp" X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 X-Authenticated-User: knack Organization: WORKS Mime-Version: 1.0 Newsgroups: fj.lang.visualbasic