左のテキストエリアに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;
}
}