ブログに問合せフォームを設置する場合

2006年1月2日

ブログに問合せフォームを設置する場合、文字コードの問題が発生します。

問合せフォームだけでなく、CGIと連動するとき全般の注意点です。
問題になるのは、ブログの文字コード設定がUTF8の場合です。

基本的にデフォルト設定であるUTF8にしておいた方が、プラグインなどの導入、カスタマイズをするときに応用ができます。

ただ、CGIは従来のHPがSJIS、EUCで作成されていたため、この文字コード対応のCGIがほとんどです。
そのため、UTF8のブログに適応させるためには、ちょっと簡単にはいきません。

対応策として、

  1. ブログからCGIへの直リンクをはり、ブログから切り離す。
  2. UTF8(ユニコード)対応のCGIを探す(最近は結構フリーでもお目見えしています)
  3. ブログのコメント欄を少し改造して問合せフォームとする。

などでフリーやシェアウェアのCGIを今までどおり設置します。

ただ、やはりデザインを統一させたい、すべての更新に連動したい、また最近はブログですべてHPを構築する場合など、やはりカテゴリに「問合せ」を作って、そのエントリーにブログを表示させたいということがあります。

そのときは、UTF8対応のCGIを導入する必要があります。
対応策の2がいちばんてっとりばやいのですが、使い慣れたCGIを採用したい場合、このCGIをUTF8に対応するようにカスタマイズします。

もちろん、フリー、シェアウェアとも改造禁止のCGIもありますから、ここはしっかり確認しておきます。

変更点の要点は

  • CGIの保存をutf8にする(文字コード保存設定ができるエディタ操作)
  • jcode.plをJcode.pmに変更します。 require ‘jcode.pl’; → use Jcode; (もう設定されているものは、そのままでOK)
  • ソースの中、  &jcode’convert(*xxxx,’jis’); → Jcode::convert(\$xxxx,’jis’); に変更
  • 上記括弧のなかにsjis、eucがあった場合、utf8に変更。jisはそのまま

上記を行うことでだいたい文字化けしないで動くようになります。
ただ、少しCGIの知識がないと難しいかも(^^ゞ

まあ、UTF8対応のCGIを使うのがいちばんよいでしょう!結局のところ・・・