🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.visualbasic
Article #496

Re: 質問:文字コードについて

#496
From: Naomi Suzuki
Date: Wed, 04 Mar 1998 00:00
57 lines
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-mail
References: <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