特に必要というわけではないのですが、超漢字Vでデータベースを使おうと思った時どうすればよいか調べてみました。パーソナルメディアのホームページには「超漢字ソリューション for Oracle」が載っています。Oracleが使えるのなら、PostgreSQLも使えるのではないかと思い試験してみました。
WindowsならODBCドライバー経由でPostgreSQLに接続するのが簡単ですが、超漢字ではODBCという接続プロトコル自体が用意されていないので、接続はブラウザ経由になります。データベースをサーバーサイドスクリプトで表示してブラウザで表示、更新というかたちになります。
サーバーはWindowsXPでWindows版のPostgreSQL8.1をインストールして簡単なテーブルを定義します。ホームページはVisual Studio 2005を持っているので、Visual Web Developer 2005 を使用して作成しました。DetalisViewコントロールをODBC経由でlocalhostのPostgreSQLと連結してみます。とりあえず簡単そうな「挿入」だけクエリーを書いてみました。サーバーに使用するWindowsXPには超漢字Vはインストールしていません。
これをIISで公開して他のPCにインストールした超漢字Vから閲覧します。
囲碁棋士の元本因坊 王銘エン(左が「王」右が「宛」)のエンという字は、日本棋院のホームページでもカタカナになっています。これを超漢字Vから入力して表示されるかどうか調べてみます。
超漢字Vの「ブラウザ用紙」ではJISコードの漢字も表示できない(漢字を入力したレコードに移動するとエラーになってしまう)ので「Mozilla Firebird 0.7 for 超漢字」から試してみます。今度は表示されます。超漢字固有文字「エン」を入力してみます。入力可能です。また、レコードを移動して再表示してみても表示できます。PostgreSQLに超漢字固有文字の入力は可能なようです。
今度は超漢字VをインストールしたホストOSのWindowsXPから表示できるか確認してみました。IEからもFireFoxからも「エン」が表示できます。試しに「エン」をコピーしてメモ帳にペーストして保存、開いてみると「?」になってしまいます。やはりWinodowsXPに登録がないフォントもブラウザ上では表示されるようです。超漢字VをインストールしていないPCから閲覧しても「エン」はちゃんと表示されます。
現在のPostgreSQLの最新バージョンは8.3ですが、あえて8.1を使用しました。というのは多分、超漢字固有コードはPostgreSQLではWindowsXPの外字と同じような扱いになるのではないかと思ったからです。以前、8.1のダンプデータを8.2にリストアしようとして失敗したことがありました。8.1ダンプデータに含まれた外字がPostgreSQLのEUC_JP<->UTF8の変換マップになかったためです。当然、超漢字固有文字は変換マップにありません。なので、多分リストアできない8.3より8.1の方が超漢字のデータを登録できる可能性が高いのではないかと思いました。PostgreSQLのような完成度の高いデータベースでバージョンが低い方が良いということはちょっと考えられないので、何らかオプションを設定すればこんな問題は解決できるようにも思いますが、あまり調べていないのではっきりしたことは言えません。