ブログ
中国語のWebサイトを作った際に、Contact Form 7プラグインとWP Multibyte Patchプラグインの両方を有効化している場合に、メール送信で起きる文字化けを解消する方法
あっ、どうもどうも、こんにちは。最近、WordPressで、アラビア語のWebサイトを作ったり、中国語のWebサイトを作ったり、アラビア語も中国語も話せないのですが、なぜか制作するWebサイトの言語に幅のある、株式会社コミュニティコムの星野邦敏です。
さて、つい今日のことになりますが、お問い合わせのメールフォームとして、Contact Form 7プラグインを使って、中国語のお問い合わせメールフォームを設置しました。
Contact Form 7は、多くの言語に翻訳されていて、中国語も簡体字と繁体字にも対応しています。中国語が分からないのですが、簡体字で!と指定があったので、中国語(簡体字)で設置しました。
無事に設置して、めでたしめでたしと思っていたら、テストで送られてきたメールが文字化けしていました。
あれ?WordPress自体の文字コードはUTF-8だから大丈夫だと思ったけど何でだろう?ということで、原因は、WP Multibyte Patchプラグインがメールを送信する時の指定を、JIS (ISO-2022-JP) エンコーディングで送信していたからでした。
よくよく考えたら、WP Multibyte Patchプラグインを有効化する必要がなかったのかもしれませんが、中国語も日本語と同じ2バイト文字だと思いますので、有効化しました。
プラグインのwp-multibyte-patchフォルダの中の
wpmp-config-sample-ja.phpファイルを、wpmp-config.phpにリネーム(名前の変更)をして、
$wpmp_conf[‘mail_mode’] = ‘JIS’;
を
$wpmp_conf[‘mail_mode’] = ‘UTF-8’;
として、
$wpmp_conf[‘patch_wp_mail’] = true;
を
$wpmp_conf[‘patch_wp_mail’] = false;
として、
変更したら、wpmp-config.phpファイルをwp-contentフォルダの階層に入れます。(wp-multibyte-patchフォルダ内では無く、もう一つ上の階層という点に注意しましょう。)
これで、文字コードのズレが起こらずに、無事に文字化けせずにメールを送れるようになりました。
解決には、
WordPress › フォーラム » Contact form 7 中国語が文字化けする
を参考にしました。テンプラさんと三好さんという、プラグイン作者が実際に答えていて、質問者の方はそれでも直らなかったようですが、ちゃんと解決しました。
ということで、中国語や韓国語やアラビア語のWebサイトのように、半角英数のみも言語以外の言語のWebサイトを作る際には、文字コードの問題が起きると思いますので、何かの参考になればと思います。
以上、自分へのメモも兼ねたブログ記事でした。
IT事業と不動産運営事業を行う株式会社コミュニティコムの代表取締役。埼玉県さいたま市の大宮駅東口近くの「コワーキングスペース7F」「シェアオフィス6F」「貸会議室6F」の運営代表者。「大宮経済新聞」の編集長。WordPress日本語公式サイトのイベントカレンダー更新。他、複数の一般社団法人とNPO法人の理事などをしています。趣味は自分の思い付いたWebサービスを自分で自由に開発することです。最近は農業と食と家庭菜園のビジネスなどにも興味があります。