過去の桐井戸端BBS (桐ver.8)
11204 桐はJISコードなのですか?JISコードからシフトJISコードを知る方法を知りたいのですが。 磯田 2001/05/16-18:12
いつもお世話になっています。桐V8sp6です。
さて、V8では表表示モードで右クリックをすると、「コード表示」という
メニューがあり、とても重宝しています。
しかし、どうもこのコードがJISコードのようなのです。
現在では多くのIMEでシフトJISまたはユニコードが標準となってきている中ちょっと時代遅れのような気がします。
JISコードからシフトJISコードを知る最も簡単な方法を知りたいのですが。
よろしくお願いします。
11218 Re:コード表示について ONnoji 2001/05/18-13:43
記事番号11204へのコメント
磯田さん、こんにちは。ONnojiです。

桐にはJISコードからシフトJISコードへ直接変換する機能はないようです(たぶん)。
JISコードからシフトJISコードへ直接変換する関数もないようです(たぶん)。

でも桐の関数を組み合わせるとできると思います。
以下はその例です。
間違っていたらごめんなさい。

桐のコード表示では、

"亜" → #hex( #jis( "亜" ) ) → "3021" という具合に表示されます。

"3021" を シフトJISコードにするには次のようにします。

#hex( #シフトjis( #jis( #hex( "3021" ) ) ) ) → "889F"
11224 JISコードとshift JISコードの相互変換 佐田 守弘 2001/05/18-23:18
記事番号11218へのコメント
磯田さん
ONnojiさんが書かれている通り、「#JIS」関数、「#シフトJIS」関数を使う事によって、コード変換が可能です。
そして、これらの関数は逆変換も可能な関数ですから、直接的に組み合わせる事でJISコードとshift JISコードの相互変換が可能です。
つまり、計算式は次の様になります。

shift JISからJISへの変換
 #JIS(#シフトJIS(&文字))

JISからshift JISへの変換
 #シフトJIS(#JIS(&文字))

上記で逆変換可能とは、これらの関数に文字を引き数とすればコードが返され、コードを引き数とすれば文字が返されるという意味です。

佐田守弘(KS-00119)
11225 桐とJISコード 佐田 守弘 2001/05/18-23:57
記事番号11204へのコメント
磯田さん

桐の正式名称には、「日本語データベースシステム」(MS-DOS版では「日本語リレーショナルデータベース」)と書かれていますね。
この「日本語」には結構深い意味があると思っております。そしてそれは、
 *JISコードベースでデータ処理を行う
と、私は理解しております。

●前置き
データベースソフトの歴史を繙いてみましょう。
DBの草分けとも言えるdBASEの時代は、1バイトコード(ASCIIコード)ベースでした。
しかも固定長フィールドのDBでした。
これは当時のdBASEのユーザーであれば、偶数桁目から始まる最後の漢字が文字化けした経験があると思います。

その様な「目の青い」DB時代に登場した桐は、「日本語データベース」と銘打っておりました。
そしてその意味は、よく言われる国産のDBであるという事だけでなく、
JISコードベースでデータ処理をする事に最大の特徴があると受け止めました。

●日本語文字のコード体系
日本語をどの様なコードで扱うかは、JISで規定されています。
正式名称は失念しましたが、確か「データ交換用文字コード」の様な名称であったと思います。
ここで正式に規定されているのは、区点コードなのですが、取り扱いにくいためか、
一般には16進JISコードが使われています。
磯田さんは
>現在では多くのIMEでシフトJISまたはユニコードが
>標準となってきている中ちょっと時代遅れのような気がします。
と書かれておりますが、目の青い国でどう決めたかは知りませんが、わが国では日本
工業規格で決められている事であり、特に時代遅れとは思えないのですが。

■ JISコードとshift JIS
JISコードは2バイトコード体系なのですが、先頭1バイト部分がASCIIコード体系と重複します。
つまり、ASCIIコードとJISコードが混在した場合、先頭1バイトのみを見て、それがASCIIコードなのか、
JISコードの先頭バイトなのかの区別がつきません。

●シフトインとシフトアウトコード
かつてN88BASICの時代には、ASCIIコードとJISコードを混在させるために、
日本語の始まる前にはシフトインを、終わりにはシフトアウトコードを付ける方法が使われました。
しかしこの方法は、文字列の結合などの処理がとても煩雑になり、かつ、文字数のカウントも大変でした。
●シフトJISとは
JISコードの先頭バイトだけを見てASCIIコードと区別できるように、文字コードをシフトしたものがシフトJISです。
これによりシフトJISコードの先頭バイトは、日本語が使えないパソコン時代にグラフィック文字と呼ばれた
絵文字に使われていたコードの領域に当てられました。
これが始まったのは、MS-DOSの時代です。
●シフトJISの利点
シフトJISは、ディスクファイルに記録される時、コンピュータ内部でデータ処理を行うときに使われています。
これにより、煩雑なシフトイン、シフトアウトコードが不用になり、バイト数で桁数が数えられる様になりました。
●外部への出力は
シフトJISでの扱いはコンピュータ内部だけの話であり、プリンタへの出力などはJISコードで行われているはずです。

■桐の文字体系
この様な中で、桐は当初からデータ処理をJISコードベースで行う事で設計されて来ました。
日本語の文字体系がJISコードなのですから、当然と言えば当然ですね。
つまり、いわゆる半角文字(ANK文字)も、全てJISコードで表します。
1バイトで表現できる文字まで2バイトコードで扱うのは、無駄な様に見えますが、
常に文字を2バイト単位(ワード単位)で扱えばよい訳ですから、扱いがとても簡便になります。
しかも、他のソフトで見られる様なJISコードとシフトJISコードとの変換処理も不用です。
桐の特徴でもあるデータ処理速度も、全てをJISコードで扱う事が根本になっている
と思っております。

佐田守弘(KS-00119)



11227 Re:桐とJISコード 磯田 2001/05/19-12:27
記事番号11225へのコメント
シフトJISとJISの関係を詳しく説明していただき、ありがとうございました。
本来アルファベットの文化で育ったコンピュータで日本語、しかも何万もの漢字を処理していくのですから、すごいことですよね。
これからもいろいろと勉強していきたいと思います。

戻る