多言語対応のPHPメールフォームメモ

多言語対応のPHPフォームを作成する機会があったのですが(中国語と韓国語)、送信内容がどうしても文字化けしてしまう。
それで、ちょっとmb_language() について調べてみたのでその時のメモです。

国内のサーバーはおおよそデフォルトでmb_language(Japanese)になっている事がほとんどだと思うのですが、この場合「ISO-2022-JP/Base64」が用いられます。
韓国語などで送信したい場合はmb_language(uni)にする必要があるのですが、この場合だと「UTF-8/Base64」となり、文字化けをおこさずに送信できます。

ただし、メールソフトがunicode対応ではない場合は、mb_language(uni)にしても文字化けは解消されません。
(といってもいまどきunicode対応ではないメールソフトは限られているのですが、筆者はたまたまEdmaxのunicode非対応のメールソフトを使っていたのでひっかかってしまいました。)

特に携帯電話などは対応していないものもまだ多くありますので、日本語を扱いたい場合はmb_language(Japanese)が確実です。




  • mb_language(Japanese) ・・・ ISO-2022-JP/Base64
  • mb_language(uni) ・・・ UTF-8/Base64
  • mb_language(English) ・・・ ISO-8859-1/quoted printable




【参考URL】
PHPによるUTF-8メール(多言語混在メール)の送信方法
メール送信 mb_send_mail








PHPによるWebアプリケーションスーパーサンプル 第2版
西沢 直木
ソフトバンククリエイティブ
売り上げランキング: 7349




初めてのPHP & MySQL 第2版
初めてのPHP & MySQL 第2版

posted with amazlet at 10.05.24
Michele E. Davis Jon A. Phillips
オライリージャパン
売り上げランキング: 135621




PHPによるWebアプリケーションスーパーサンプル ~リッチクライアント編~
鶴長 鎮一 繁田 卓二 竹下 肯己
ソフトバンククリエイティブ
売り上げランキング: 24904




PHP×WebサービスAPIコネクションズ
秋元 裕樹
ソフトバンククリエイティブ
売り上げランキング: 224375

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です