« 『武蔵野消防署仮庁舎』を見つけた。 | トップページ | 間もなく開店『くら寿司』 »

2013年4月23日 (火)

『php』でメールを送ると名前が文字化けする!!(T-T)

『php』でメールを送信すると『Outlook Express』などで、
『From: 』の名前が文字化けする。

他は全く文字化けしない…。

何でかなぁ~。(T-T)

原因が全然分からん…。

ただ分かっている事は、『UTF-8』にすると起こる。
『SHIFT-JIS』だと起きない…。

どうやったら対応できるのか?

『Content-Type: text/plain; charset=UTF-8』とかも
入れてみたが変化せず…。

ふてくされて転がってみる…。

ゴロゴロ…。

ゴロゴロ…。

ゴロゴロ…。

ハタと気が付く!

タイトルは、文字化けしていない…。

タイトルを見る。

『$subject = "お問い合わせ";』が
『Subject: =?UTF-8?B?44GK5ZWP44GE5ZCI44KP44Gb?=』となっている。

『BASE64』に変換されている。

ヘッダーは、『BASE64』で記述しなくてはいけないのかも…。

$from = "From: ".base64_encode($name)." <".$mail.">\n";

と、してみたが駄目だった…。

何かが足りない…。

タイトルを良く見ると…

『=?UTF-8?B?』と『?=』が付加されている。

これが、『UTF-8』コードにしていると言う事らしい。

$from = "From: =?UTF-8?B?".base64_encode($name)."?= <".$mail.">\n";

で、無事名前がきちんと表示されるようになった。

タイトルの文字コードは、基本『SHIFT-JIS』しか対応していないのかも?

他の物は、「全て『BASE64』で表記しろや!」って事なのかもしれない。

多分、どこかに書いてあるのかもしれないが…

見つからないので、そう言う事としておこう。

ちなみにこっちの方がメジャーらしい。

$from = "From: ".mb_encode_mimeheader($name)." <".$mail.">\n";

同じように『BASE64』に変換されている。

これからも、悩まされそうだ…。(汗)

|

« 『武蔵野消防署仮庁舎』を見つけた。 | トップページ | 間もなく開店『くら寿司』 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 『php』でメールを送ると名前が文字化けする!!(T-T):

« 『武蔵野消防署仮庁舎』を見つけた。 | トップページ | 間もなく開店『くら寿司』 »