左のテキストエリアにShift_KS文字列を書き込んで
「O.K.」ボタンを押してください。
すると、右のテキストエリアにハングルで表示されます。
これをマウスの右クリックなどでコピーして、目的の位置に貼り付けてください。
もしも「アンニョンハセヨ」とハングルで書いてあるはずなのに、 「照括馬室推」のように文字化けしていた場合、これは Shift_KSコードとかKorean Writerコードとか呼ばれる 特殊なコードになっている可能性が高いです。
この文字列を左のテキストエリアに貼り付けて、「O.K.」ボタンを押すと、 右のテキストエリアに「안녕하세요」と表示されるはずです。
Java1.1では、うまく動かないかもしれません。(原因調査中)
日本語版Windows98(ただし、Java1.4をインストールしている)で
テストしてみたところ、
Internet Explorer 6 、Netscape 7、及びOpera 7
でうまく動きました。
(ブラウザが使用しているJavaのバージョンがちょっと気になりますが....)
Javaアプレットを使っているためか、
ページを開いた時に、Tabキーで項目を移動できません。
(ただし、一旦別のウインドウに移ってから、もう一度
このページに戻ると、IE6とNetscape7では
Tabキーで項目を移動できました。
Opera7ではどうしてもマウスを使わないとフォームなどを
アクティブにできませんでした。)
マウスを使っている分には、別に困りはしないのですが....。
記号や漢字、仮名などは、一部復元できない文字があります。
これは、Shift_JISからユニコードへの変換テーブルで
変換できないからです。
変換テーブルはShift_JIS用であって、
Shift_KSコードの文字の中には変換できないものがあるからです。
(ハングル部分に関しては、偶然ですが、うまく変換できるわけです。)
たとえば、片仮名の「カキクケコ」という文字列を
KSコードで(euc-krコードで)書いて、これをShift_KSコードに
変換したものは、元に復元できません。
テストファイル「kakikukeko.htm」で
実験してみてください。
ひょっとしたら、ブラウザが使用しているJavaのバージョンによっては
動かないのかもしれません。
実際、Netscape4.5(Java Consoleでは「Java 1.1.5」と表示される)では
# Applet exception: error: java.lang.ClassFormatError: Bad major version number
とエラー表示されます。
(アプレットのコンパイルに使ったのはJava 1.4です。)
2003年11月30日(日)追記:
javac -target 1.1 SksKs.java
でコンパイルし直してみました。
これだとNetscape4.5でも動いたです、が、しかし、ハングルはすべて「?」で
表示されていました....。
javaアプレット内で定義したsksToksという関数を JavaScriptから呼び出しています。
javaアプレットのソースコードは SksKs.java です。 内容は、次の通りです:
import java.awt.*; public class SksKs extends java.applet.Applet { byte[] myByteArray = null; String myDecodedString = null; public String sksToKs(String mystr) { if(mystr.equals("")) return ""; try{ myByteArray = mystr.getBytes("EUCJIS"); }catch(Exception e) { } try{ myDecodedString = new String(myByteArray, "KSC5601"); }catch(Exception e) { } return myDecodedString; } }