こんにちは、WPホームページ研究所の運営サポートチーム(@WP_LABO)です。
本日は業務メモです。海外サイトから購入したドメイン販売を受け付けるスクリプトが日本語のみ文字化けしていたので解決策を残しておきます。ソースを追うと「日本語入力を想定していない仕様」でした。
どうやらスクリプトの開発者が「母国語(1バイト文字)でのお問い合わせを基本としていた」ようですね。解決方法もむずかしくないので以下にまとめておきます。1行の追記で文字化けはすべて改善いたします。
メールフォームから送信される自動返信メール(日本語)の文字化け対策
まずは自動返信メールを行なっている箇所を見つけましょう。今回のスクリプトでは「PHPMailer」を使ってメール送信の処理を行なっていました。送信しているプログラムに以下がありました。
$mail = new PHPMailer;
ソースには「文字コード(CharSet)」の設定が見当たらず。以下の追記でOKです。
$mail = new PHPMailer;
$mail->CharSet = 'UTF-8';
どうやら「文字のバイト数が違う言語」での利用を想定して作っていなかった様子。
以上でフォームへ日本語入力があった場合でも文字化けしなくなりました。
まとめ
本日は「日本語環境を考慮した文字コード設定」をご紹介いたしました。
基本的に日本語には「2バイト以上としてカウントされる文字が含まれている」ため英語など1バイト文字とは扱いが異なります。フォーム設置時にあらかじめ文字コードを設定しておくのはお約束ごとですが基本だからこそ逆に忘れてしまいがちですよね。もし同じ症状で困ったら「UTF-8」で文字コードを指定しておきましょう。
ぜひお試しくださいませ。
最新式の無料プラグインを事前公開
WordPressは公式サイトに登録済みのプラグインだけで全機能を補足しきれません。当サイトでは使いやすさを追求した魅惑的なプラグインを無料でダウンロードいただけます。運営ホームページのマーケティング力をさらに高めるチャンスです。まずは無料でDLしてお試しくださいませ。
→ 改良されたプラグインを確認する