ブログに問合せフォームを設置する場合、文字コードの問題が発生します。
問合せフォームだけでなく、CGIと連動するとき全般の注意点です。
問題になるのは、ブログの文字コード設定がUTF8の場合です。
基本的にデフォルト設定であるUTF8にしておいた方が、プラグインなどの導入、カスタマイズをするときに応用ができます。
ただ、CGIは従来のHPがSJIS、EUCで作成されていたため、この文字コード対応のCGIがほとんどです。
そのため、UTF8のブログに適応させるためには、ちょっと簡単にはいきません。
対応策として、
- ブログからCGIへの直リンクをはり、ブログから切り離す。
- UTF8(ユニコード)対応のCGIを探す(最近は結構フリーでもお目見えしています)
- ブログのコメント欄を少し改造して問合せフォームとする。
などでフリーやシェアウェアの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を使うのがいちばんよいでしょう!結局のところ・・・