« ディスコグラフィ作成:同義語辞書の作成 | トップページ | 演奏会案内:2008年3月分 »

ディスコグラフィ作成:いよいよ検索用CGIスクリプトの作成

ディスコグラフィ作成も、PC上でのデータ入力や辞書作成のツールは完成の域に達し、CDデータの入力も辞書作成も一段落し、いよいよ検索用CGIスクリプトの作成に取り掛かることになった。

が、Perlを使うのは数年ぶり、PerlでUnicodeを使えるのかも良く知らない・・・。ということで、まずはPerlでUnicodeを使えるか、使えるならば何に気をつけるべきか、といったことをWebで検索してみて、どうやらそれほど難しくはなさそうであることだけは「なんとなく」分かった。

それではと、ごちょごちょコードを書いていくうちに、どうにか検索CGIができてしまった。予想通り、Perlの細々としたテクニックはかなり忘れてしまっていたが、昔書いた掲示板のCGIスクリプトを読み返して思い出したりした。

PerlでUnicode(厳密にはUTF8エンコード文字列)を扱う方法として、とりあえず分かったこと。

  1. (当然といえば当然だが)スクリプトをUTF8で記述しておく。
  2. スクリプトの先頭にuse utf8; と use Encode; を記述しておく。
    →どうやら、これでスクリプトでUTF8文字列を使うよう設定され、文字コード変換のサブルーチンが使用できる、らしい・・・。
  3. binmode STDIN, ':bytes'; で、標準入力からのデータに文字コードを仮定させない。また、標準入力から読み込んだCGIパラメータは、入力がUTF8文字列の場合、
    $data = decode('utf8', $data);
    のようにして、Perlに認識させる。
  4. open File, '<:encoding(utf8)', 'sample.txt';
    とすると、読み込み元のファイルの文字コードを指定できる。
  5. binmode STDOUT, ":encoding(shiftjis)";
    または
    binmode STDOUT, ":encoding(utf-8)";
    のようにすると、標準出力への出力データは自動的に文字コード変換される。

ざっと、こんなところだろうか。PerlでUTF8を使う方法の詳細については、以下のサイトを参考にしていただきたい。
Perl 5.8.x Unicode関連
perl 5.8における日本語コード変換のメモ
perl5.8のUnicodeサポート

1ヶ月ちょっと続いたディスコグラフィ作成は、これで一通り終わり、後はCDデータの追記と、定期的に同義語辞書の拡充を行い、CGIスクリプトの出力の体裁を整えるだけとなった。

|

« ディスコグラフィ作成:同義語辞書の作成 | トップページ | 演奏会案内:2008年3月分 »

パソコン・インターネット」カテゴリの記事

プログラミング」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/225253/17759106

この記事へのトラックバック一覧です: ディスコグラフィ作成:いよいよ検索用CGIスクリプトの作成:

« ディスコグラフィ作成:同義語辞書の作成 | トップページ | 演奏会案内:2008年3月分 »