文字コードをUTF-8にして送信してみると、日本語部分は文字化けせずに、中国語の一部文字が?に化けてしまいます。届いたメールは「charset=ISO-2022-JP」とヘッダーに入っているので、UTF-8との差によるものかと思いますが・・・
解決方法をお教えください。急いでいるのでポイント高めで。よろしくお願いします!
PHP 上から UTF-8 デフォルトなメール送信の方法
参考:http://www.securehtml.jp/utf-8/php_utf_mail.html
送信プログラム側に上記サイトの上段で提示されている仕組みをいれると
解決するかもしれません。
一度、試されてはどうでしょうか?
マルチバイト処置の場合は、
(1)php内部処理で使われるコードも調整しておかないと文字化けします。
http://jp.php.net/manual/ja/ref.mbstring.php
(2)mb_send_mail を使っているのであれば、mb_language も確認してください。
おっしゃることはわかるのですが、注意はしているつもりなので、どう調整すればいいのかと・・・
http://www.infinity-dimensions.com/blog/archives/000114.html
http://www.spencernetwork.org/jcode/readme.txt
このあたりを参照するとわかると思うのですが、
「charset=ISO-2022-JP」とは、JISコードと呼ばれる
文字体系です。中国語の漢字の一部は、JISコードに無いので、
変換した時点で当然文字化けします。
メール送信部分をUTF-8で送信できれば良いのですが、
メール送信プログラムや途中の経路によって、7bitで切られ、
頭のビットが無くなる事による文字化けも考慮する必要があります。
なので、メールの本文中ではUTF-8でエンコードされた状態で
受信し、その後のプログラムでエンコードを解くような手順が
良さそうです。
ふむふむ・・・参考になります、ありがとうございます。
「メールの本文中ではUTF-8でエンコードされた状態で受信し、その後のプログラムでエンコードを解くような手順が良さそうです。」
上記の部分がよく意味がわからないのですが、メールの送信をPHPから行い受信は普通の中国語OSのメールソフトの予定ですが、この場合はどうなりますでしょうか。
それはわかりますが、全てUTF-8で処理を行っているので、送信時にUTF-8ではなくISO-2022-JPに変換されてしまうのですかね・・・
PHP 上から UTF-8 デフォルトなメール送信の方法
参考:http://www.securehtml.jp/utf-8/php_utf_mail.html
送信プログラム側に上記サイトの上段で提示されている仕組みをいれると
解決するかもしれません。
一度、試されてはどうでしょうか?
非常に参考になります、ありがとうございます!試してみたいと思います・・・が、試せるのが今週末になりますので、この質問は一回終了したいと思います。
みなさんありがとうございました!
非常に参考になります、ありがとうございます!試してみたいと思います・・・が、試せるのが今週末になりますので、この質問は一回終了したいと思います。
みなさんありがとうございました!