« カテゴリ一覧の表示・非表示を制御できるプラグイン | メイン | MovableTypeのDBにSQLiteを設定する場合 »

TOP> Webをカスタマイズ, MTのプラグイン活用

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

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

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

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

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

対応策として、

  1. ブログからCGIへの直リンクをはり、ブログから切り離す。

  2. UTF8(ユニコード)対応のCGIを探す(最近は結構フリーでもお目見えしています)

  3. ブログのコメント欄を少し改造して問合せフォームとする。

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

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

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

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

変更点の要点は

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

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

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

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)