Windows95/98の文字化け対策

Windows95 + NCで「~」と「∥」、Windows98で「∥」が文字化けする。
原因は、ブラウザがアプレットへパラメータ文字列を渡す時に、 「~」を301cH、「∥」を2016Hと変換するが、 これをそのまま出力しても文字が出ないためである。

IEの場合は、これらをそれぞれff5eHと2225Hに変換していて、 このコードは文字化けせずに表示できる。
そこで、常に301cHをff5eH、2016Hを2225Hに置き換えれば文字化けしないのではないか、 と思い実験用アプレットを作ってみた。

このページのアプレットの文字表示は上から順に、

  1. TextField、置き換えしない
  2. TextField、置き換える
  3. Graphics.drawString、置き換えしない
  4. Graphics.drawString、置き換える

その結果、文字化けは解消された…と思ったが、 OSによって結果がいろいろ。置き換えない方が良い場合もある。


以下の画像は、いろいろなOSで実行した場合のスクリーンショットである。

Windowsでは、文字コードの置き換えをした時に正しく表示できる。
MacOS + NCでは、文字コードを置き換えない方が正しく表示できる。
Windows95 + NC
で実行した場合
Windows95で実行した場合
Windows98 + NC
で実行した場合
Windows98で実行した場合
Windowsだけ見ていると
301cH → ff5eH
2016H → 2225H

と変換すれば良いように思える。
Windows98 + HJ
で実行した場合
Windows98 + HJで実行した場合
Windows版HotJava Browser3.0はNCと同様の結果。
実行結果とは関係無いけど、HotJava1.xの頃の方が動作が軽かったような気がする。
MacOS + IE
で実行した場合
MacOS + IEで実行した場合
MacOS + NC
で実行した場合
MacOS + NCで実行した場合
しかしMacOSでは変換すると、逆に悪くなるケースがある。
Solaris + HJ
で実行した場合
Solaris + HJで実行した場合
Solaris + NC
で実行した場合
Solaris + NCで実行した場合
HotJavaではMacOSと同様で、置き換えると逆に悪くなる。
NCではフォントが変わるだけだが、どちらかと言えば置き換えた方が良さそう。
つまり、同じOSでもブラウザによって置き換えるべきか否かが逆になる。
IRIX + NN
で実行した場合
IRIX + NNで実行した場合
IRIXでは、置き換えてはいけない。
このマシンでは、ブラウザはNetscapeNavigator 3.01S だけしかインストールしていなかった。