[戻る]

文字コード番号表示(WSH)→画像

文字コード番号表示(WSH) disp_chrcode_1.vbs UpDate  disp_chrcode_1.lzh

Shift-JISコード番号表示(WSH) Shift_JIS.vbs  Shift_JIS.lzh

JISコード番号表示(WSH) JIS.vbs  JIS.lzh

EUCコード番号表示(WSH) EUC.vbs  EUC.lzh

区点コード番号表示(WSH) Kuten_code.vbs  Kuten_code.lzh

JISコード番号一括変換(WSH) JIS_code_conv.vbs  JIS_code_conv.lzh

(クリックするとテキストファイルがそのまま表示されてしまうので、スクリプトそのものをダウンロードするには画像か圧縮ファイルの方をクリックする。)
《disp_chrcode_1.vbs》 選択した1文字の各種文字コードを表示する。 Shift_JISからJISコードを計算して求めている。 JIS第二水準漢字まで変換できる。
【使い方】
《disp_chrcode_1.vbs》《Shift_JIS.vbs》 「真魚」エディタから使う。但し、データの入出力(スクリプトの最初と最後)のEditor.GetSelTextとEditor.SetSelTextの行をそれぞれstr = InputBox("文字列?"), str = InputBox(" "," ", str)とすれば、単独で使えるはずである。
【改版履歴】
◇文字コード特集の雑誌を読んだことはあるが、頭に入らない。VBScriptにはAsc関数、AscW関数、Chr関数、ChrW関数等がある。それとこの間、16進数を10進数に変換するCLng("&H" & "16進数")という関数の応用方法を知った。以前、Excel VBAでCoderを作ったときは、変換データを付けていた。今回はVBScriptを使って、文字コード番号の相互変換をやってみようかと思い、「文字コードの変換方法」( http://www.cc.kurume-it.ac.jp/home/general/sibhome/moji/moji11.html )をガイドとしてやってみた。しかし、JISからShift_JISへの変換方法はあるが、その逆のサンプルは他のホームページにC言語やperl等で書いてあるものがあるだけのように見えた。そういうプログラムは読むこともできないから、256×256のマス目の表をExcelで作り、JISとShift_JISとEUCの漢字(第一水準のみ)に加えて、これに入れられるかどうかも分かっていない区点コードと8ビットASCII文字をむりやり書き込み、特に《Shift_JIS → JIS》に焦点を当てて、例の試行錯誤をやってみた。表を作るのに数日を費したが、自分で書いてみるとぼんやりとながら見えてくる。変換方法について書いてある説明類の意味も分かるようになってきた。だが、第二水準以降にチャレンジするのは、まだしばらく先になりそうだ。表(hexadecimal_table.lzh)もついでに載せておこう。(2007.11.4)◇JIS第2水準文字は3,990字程度である。下の表に若干付け加わるだけだということまで分かってきた。計算式が面倒にならなければありがたい。まずは表を埋めていかないと、理屈がまったく分からない。また、第2水準になると、EUCとコードの重複するところが出てくるように見える。この辺も確かめる必要がある。(11.6)◇JIS第2水準文字とそれに相当するShift_JIS、EUCのコード範囲をまとめてみた(表=hexadecimal_table_2.lzh)。やはりShift_JISとEUCとで重複する部分が出てくる。文字コードは算出できたとしても、ここはベースコードの表示にならざるを得ない。変換式のアルゴリズムも「文字コードについて」(http://www.tohoho-web.com/wwwkanji.htm)に載っているが、やはり複雑そうである。(11.7)◇《disp_chrcode_1.vbs》(UpDate)、《Shift_JIS.vbs》だいぶ文字列処理スクリプトもたまってきたので、Shift-JIS漢字一覧について、文字の切り出し・結合などあれこれいじりながら、暇をみて少し手直しをした。第一水準文字については、ほぼ正確に表示できるようになったのではないかと思う。一文字ずつコードを表示するスクリプトを作り、MS-ExcelにおいてCODEおよびDEC2HEX関数を使って求めたJIS16進数と照合しながら、異なる結果の出た文字について前に作った文字コード一覧表とさらに照合し、計算式を改善するというやり方である。手間がかかる上に、表の結果をどうすれば計算式に反映できるのかについて工夫している。まだ第二水準の文字について、結果のちゃんと出ないところがある。例によって参考資料を下に挙げておく。検証の過程でできたテキストファイル類である。また、VBScriptでShift-JISコードを連続して表示するスクリプトを作ったので、これも載せておく。(12.15)◇2回目の点検を行ってみたが、第二水準文字まで含めて、ほぼ変換できるように思うがどうだろうか。《JIS.vbs》何だかうまくできたように思えるので、ついでに一括してJIS16進コードに変換するスクリプトを作ってみた。(12.16)◇《JIS_code_conv.vbs》特に意味のないものともいえるが、文字を一括で変換できるフォームを作った。数値文字実体参照はUnicodeでないと意味がないので、このスクリプトは用途の乏しい物だと思う。(12.22)

[TOP]
【実行結果】

《disp_chrcode_1.vbs》

サンプル画面


サンプル画面  サンプル画面


実行結果


【参考画面】 各種文字コードを256×256の表に配置したもの。
Excelの表を1/10に縮小表示したものの画像である。

コード配置イメージ


※ JIS第2水準レベルの文字について、他のコードを見ると、Shift_JISとEUCとで重複する部分が出てくる。

コード配置イメージ


《Shift_JIS.vbs》

サンプル画面    実行結果


〔参考〕

Shift_JIS.vbsでコードを表示させた後でExcelに読み込む場合は、Eを"E"に置換しておかないと自動的に指数表示されてしまうので注意する。

Shift_JIS.txt


《JIS.vbs》

サンプル画面    実行結果

《EUC.vbs》

サンプル画面    実行結果

《Kuten_code.vbs》

サンプル画面    実行結果

《JIS_code_conv.vbs》

サンプル画面    実行結果