(デモページはこちらです)
デモページは ajax で実装しています。また、ウェブサービス API としても利用できます。
サーバ側の Perl/CGI とは、 POX over HTTPで通信します。
このページでは、HTTP POST メソッドで Perl/CGI を呼び出して、 結果を JavaScript で画面上に表示しています。
サーバ内部では、 Unicode の文字コード番号からハングルの初声・中声・終声のコードを計算して、 ルビ表示用の XML ファイルを生成します。
ローマ字生成処理について、詳しくは こちら。
サーバ側 CGI の URL は
http://www.kawa.net/works/ajax/romanize/romanize.cgi
です。POST メソッドで以下の引数を指定してアクセスします。
mode=hangul&ie=文字コード&q=クエリ
ハングルでは、モードは固定値 mode=hangul です。(省略不可)
入力する文字コードは、ie=UTF-8 のように指定できます。(省略時は UTF-8 とみなす)
クエリは、ハングル文字列を URL エンコードした文字列を指定します。
サーバからのレスポンスは、POX (Plain Old XML/オレオレ言語) です。
<?xml version="1.0" encoding="UTF-8" ?> <ul> <li> <span title="seo">서</span> <span title="ur">울</span> </li> </ul>
<ul> 要素がドキュメントルートです。
クエリ1行ごとに <li> 要素が登場します。
ハングル1文字ごとに <span> 要素が登場します。
<span title="〜"> 属性として、ローマ字が入ります。
ハングル以外の文字列については、title 属性ナシの <span> 要素にそのまま入ります。
HTML 準拠の <ul> <li> <span> 要素のみを使用しているので、 そのコードのままブラウザで表示させようと思えば、表示できます。