金曜・日曜 8:30から 朝ヨガ開催中!

postmailをUTF-8で使うときのポイント

cgi

2010.12.15

【ファイルの文字コード】

・tmpl 内ファイルはUTF-8
・postmail.cgi はShift_JIS もUTF-8

【CGIの書き換え箇所】

1. 文字コード変換ライブラリ【サーバパス】

require 'jcode.pl';
  ↓
use Jcode;


2. テンプレ変数変換

&jcode::convert(\$tbody, 'jis');
  ↓
&Jcode::convert($tbody, 'jis');


3. 本文内容

&jcode::convert(\$tmp, 'jis', 'sjis');
  ↓
&Jcode::convert($tmp, 'jis', 'utf8');


4. コード変換

&jcode::convert(\$key, 'sjis');
&jcode::convert(\$val, 'sjis');
  ↓
 削除


5. チェックモード

<meta http-equiv="content-type" content="text/html; charset=shift_jis">
  ↓
<meta http-equiv="content-type" content="text/html; charset=utf-8">


6. BASE64変換

$sub = "=?ISO-2022-JP?B?" . &b64enc($sub) . "?=";
  ↓
$sub = "=?utf-8?B?" . &b64enc($sub) . "?=";


7. メールSubjectは1バイトで!

◎cgiをShift_JIS保存すればメールSubjectは日本語でも文字化けしないけど、
 代わりに確認画面などが文字化けするので、思い切ってメールSubjectは英語表記で!


多分コレでOK。


※個人的メモなので、質問受け付けできません。
※使われても結構ですが、何も保証できません。

Tags:,