講座のホームページがリニューアルするのにあわせて,発表した論文のデータベースに対する検索ページを作る.2,3時間で出来るだろうと思っていたが,日本語の処理に非常にとまどった.ちなみに,データベースはmysqlで,インターフェースはHTML,SQLの発行はperlによるCGI.
まず,日本語がURLエンコード/デコードされていることに気づくのにちょっとかかる.(久しぶりだと忘れてしまいます).
ちなみに,packを使うと,
$str =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(“C”, hex($1))/ego;
という感じ.
つぎに,講座の発表論文のデータベースはmysqlで構築してあって,日本語はEUCで入力されている.一方,ブラウザからの入力される検索語はブラウザによってまちまちで(sfariだとデフォルトUTF8かな),よってEUCに強制的に変換してやる必要がある点が一苦労.で,最初jcode.plを使って,
jcode::convert(¥$str, ‘euc’);
とやっても,全然だめ.うーんとなやんでいろいろwebをみていると,jcode.plではUTF8を扱えないことに気づく...Jcode.pmを使わなあかんみたい.(最近のperlだとJcode.pmも不要みたい)
ということを,勉強させてもらいました.