メールフォームから送信される自動返信メール(日本語)の文字化け対策

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

本日は業務メモです。海外サイトから購入したドメイン販売を受け付けるスクリプトが日本語のみ文字化けしていたので解決策を残しておきます。ソースを追うと「日本語入力を想定していない仕様」でした。

どうやらスクリプトの開発者が「母国語(1バイト文字)でのお問い合わせを基本としていた」ようですね。解決方法もむずかしくないので以下にまとめておきます。1行の追記で文字化けはすべて改善いたします。

メールフォームから送信される自動返信メール(日本語)の文字化け対策

まずは自動返信メールを行なっている箇所を見つけましょう。今回のスクリプトでは「PHPMailer」を使ってメール送信の処理を行なっていました。送信しているプログラムに以下がありました。

$mail = new PHPMailer;

ソースには「文字コード(CharSet)」の設定が見当たらず。以下の追記でOKです。

$mail = new PHPMailer;
$mail->CharSet = 'UTF-8';

どうやら「文字のバイト数が違う言語」での利用を想定して作っていなかった様子。

以上でフォームへ日本語入力があった場合でも文字化けしなくなりました。

まとめ

本日は「日本語環境を考慮した文字コード設定」をご紹介いたしました。

基本的に日本語には「2バイト以上としてカウントされる文字が含まれている」ため英語など1バイト文字とは扱いが異なります。フォーム設置時にあらかじめ文字コードを設定しておくのはお約束ごとですが基本だからこそ逆に忘れてしまいがちですよね。もし同じ症状で困ったら「UTF-8」で文字コードを指定しておきましょう。

ぜひお試しくださいませ。

【今すぐ無料プラグインを手に入れる】
無料ダウンロードはこちら

ワードプレス専門家に丸投げする

WPホームページ研究所はワードプレスを中心としたブログ作成・ホームページ制作・オウンドメディア構築・プラグイン設定・調整など幅広いカスタマイズに対応しております。 記事の掲載情報はもちろんお好みの機能をいただければ専属スタッフが心を込めて対応させていただきます。まずはお気軽にお問い合わせくださいませ。

お問い合わせの種類をお選びください(もっとも近い項目)

法人の場合は法人名とご担当者のお名前をご入力ください

返信時のご連絡に利用するメールアドレスをご入力ください

運営中のウェブサイトURLがあればご入力ください

お困りの内容があれば詳しい内容をお聞かせください