[7]文字化けの体験 EUC
目次へ. 前頁へ.
次頁へ.
- EUC で文字化けを体験する
Shift JIS を使っている人が EUC コードを体験するには次のようにする.
Netscape Navigator で文書の文字コードセットを「日本語(EUC)」にする.
これはブラウザに依存する文字コードの変換で,純然たる EUC コードではないかもしれないが,
EUC の体験はできる.Netscape で見ようとしているHTMLファイルは
Shift JIS で書かれたものとする.このとき,いくつかの文字が文字化けする.
例えば,「次郎」は「沽Y」になる.「久留米市」は「久留米s」に,「軸」は半角の「イ」になる.
なぜ,このような文字化けが起こるかを考える前にどんな文字が文字化けするのか実験してみた.
これも Macintosh での実験である.
- 体験1
Shift JIS コードの順番に漢字をHTMLファイルに書いていく.
そしてこのファイルをNetscape で,「日本語(EUC)」にして読む.
するとどの漢字が文字化けするかわかる.文字化けの体験1へ.
Shift JIS コードの 8E列目がすべて文字化けした.他は大丈夫だった.8E列には漢字が 188個ほどある.
ここの漢字だけが文字化けする.なぜだろう?その理由はすぐわかる.
8Eが入ってくると EUC はセット2のことだと考え,その次の行を1バイトで読む.
すなわち,JIS 8bit 表で読む.従って,日本語の半角カナなどが出る.
その対応も正確にわかる.例えば,「市」の Shift JIS コードは 8E73 である.従って,
JIS 8bit 表の 73,すなわち s が表示される.もうひとつ,
「軸」の Shift JIS コードは 8EB2 である.JIS 8bit 表の B2,
すなわち半角カナの「イ」が表示される.
ではその他の文字はなぜ文字化けしないのか.EUC で読んだら他の漢字も読めないはず.
これはブラウザの設定の問題だろう.EUC で読めなかったら,
Shift JIS で読むようにしているのであろう.読めるものだけ読んでいく.
- 体験2
体験1と同じようにして,「資」を入力して,EUC コードに直す.
すると何も表示されないか四角「□」になる.
この理由もすぐわかる.「資」の Shift JIS コードは 8E91 であった.
セット2と考え,91 を探すが,JIS 8bit 表の 8列,9列,E列,F列目は未定義であった.
従って,文字が消える.
- 体験3
面倒なのは漢字の後ろにまた漢字がつづくときである.後ろにつづく漢字によって文字化けのしかたが違う.
例えば,「資源」といれてみよう.Shift JIS コードで表すと8E918CB9 となる.これをEUC で読むとどうなるか.まず,8E がきているからその次を1バイトで読む.
91は未定義だから表示できない.それで918Cと読む.Shift JIS の918Cは「糟」という漢字である.最後の B9 は 8E がまだその先を探しているので 8EB9 と読む.
これは半角カナの「ケ」である.
従って,「糟ケ」と文字化けする.実験すると確かにこのようになった.
漢字の後に全角の空白を入れてもまた違った文字化けをする.空白と言えどばかにはできない.
- 体験4(EUCに読める文字を送る)
逆に Times の文字を入れて EUC に正しい漢字を表示させてみよう.
「押」の JIS コードは「3221」であった.それぞれに80を足せばEUCコードは「B2A1」となる.「B2A1」を Times で入力する.入力は面倒だが,ちょっと頑張る.
Cf.ASCII 8bit Code Table for Mac のキー入力方法.
この html ファイルをNetscape のEUC コードで読むと「押」が表示される.
さらにこれを 日本語(Shift JIS),欧米(Latin1 )などで見たらどうなるか.
予想がつくであろう.
日本語(Shift JIS)の場合,B2A1 の漢字はない.従って,何も表示されないか,四角が出る.
欧米(Latin1 )の場合はB2のプラスマイナスとA1(空白)が表示されるはずだ.
- 以上の体験2〜4の HTMLファイルを自分では作ってみた.
それが文字化けの体験2である.文字化けの体験2ではタイトルを2つ作って,
Shift JIS で読んでも EUC で読んでもタイトルが読めるようにした.
上の方法で ASCIIコードを入れていくのである.
警告:次のファイルは ASCII 8bit code を含んでいるので通信経路によってはエラーになる可能性が
あります.エラーになった場合はメールでお叱りの言葉をいただけるとありがたいです.
文字化けの体験2へ.
目次へ. 次頁へ.