PHPアップグレードで文字化け②メール編

PHPアップグレードで文字コードの変換についてを記載しています。
サイト(ページ)の変換については
「PHPアップグレードで文字化け①」
でご紹介しておりますのでご参照ください。

修正例/メールソフト: KENT-WEBさん「POST-MAIL」

厄介なメールの文字化け

PHPはUTF-8環境においてもメール送信の機能的な問題でShift-JIS使用します。ここではjavascriptとタグを使って送信し文字化けを解消しています。

UTF-8で送られてきたメール

メールのエンコードをUnicode(UTF-8)に変更した状態

サイト内の文字が正常に表示されてれていても送信用CGIをUTF-8に変換しただけでは送信文が文字化けます。メールのエンコードをUTF-8に指定しても問題は解決しません↓

[insert page=’522-2′ display=’content’]

送信方法を指定する

メールとして発信する「submit」ボタンのタグにコードを記載します。

①ページの<head>内にJavascriptを記序する。

ページはUTF-8を指定し変換も行ってください。
▼タグ
<meta http-equiv=”content-type” content=”text/html; charset=UTF-8” />

▼Shift-JISで送信するコード
<head>
・・・
<script>
function submitSJIS(f) {
var charset_save = document.charset;
document.charset=’shift_jis’;
document.getElementById(‘f1’).submit();
document.charset = charset_save;
}
</script>
</head>
②フォームタグ

赤い部分を追記します。
<form action=”$script” method=”post” accept-charset=”shift_jis”>

③送信ボタン
赤い部分を追記します。
<input type=”submit” value=”送信する &gt;&gt;” onclick=”submitSJIS();” />
これで送信内容は文字化け解消です。
保存時に「UTF-8」を忘れずに。

Shift-JISの入れ物に注意

「Shift-JIS」で出力したデータの出力先のテンプレートがUTF-8だと文字化けしますのでS-JISに指定してください。

 

タイトルの文字化け

現在対策中です。

現在アルファベットで応急処置をしています。解決策が見付かりましたら追加で記載します。