2017年8月17日
  • 自社保有メディアのサイト運営によるインターネット広告事業・WordPressによるサイト制作事業・コワーキングスペース・シェアオフィス・貸会議室の運営事業を行っています。

中国語の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サイトを作る際には、文字コードの問題が起きると思いますので、何かの参考になればと思います。

以上、自分へのメモも兼ねたブログ記事でした。