Home  >  Article  >  Backend Development  >  Specific solution to garbled characters in PHP mail() function_PHP tutorial

Specific solution to garbled characters in PHP mail() function_PHP tutorial

WBOY
WBOYOriginal
2016-07-15 13:31:53832browse

我们在使用

一般这种问题出现的原因是 mail() 函数的 header 参数里少了 Content-type: text/html; charset=utf-8,或者 charset 不是utf-8。很多国外的PHP程序一开始开发的时候没有吧中文考虑进去,所以中文使用的时候就会出现PHP mail()函数乱码。

先用函数base64_encode() 使用 MIME base64 对数据进行编码
标题字符串前加编码类型例如: =?UTF-8?B?
当然如果是gb2312的话就 =?GB2312?B?
标题字符串后加:?=

PHP mail()函数乱码的处理办法举例如下
 

<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute">to</span><span> = </span><span class="attribute-value">'xinple@example.com'</span><span>;  </span></span></li>
<li>
<span>$</span><span class="attribute">subject</span><span> = </span><span class="attribute-value">"=?UTF-8?B?"</span><span>.<br>base64_encode('邮件标题')."?=";  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">headers</span><span> = </span><span class="attribute-value">'MIME-Version: 1.0'</span><span> . "rn";  </span>
</li>
<li>
<span>$headers </span><span class="attribute">.</span><span>= </span><span class="attribute-value">'Content-type: <br>text/html; charset=utf-8'</span><span> . "rn";  </span>
</li>
<li class="alt"><span>// Additional headers  </span></li>
<li>
<span>$headers </span><span class="attribute">.</span><span>= </span><span class="attribute-value">'To: Xinple &lt;<br>< a href="mailto:xinple@example.com"><br>xinple@example.com</a>&gt;'</span><span> . "rn";  </span>
</li>
<li class="alt">
<span>$headers </span><span class="attribute">.</span><span>= </span><span class="attribute-value">'From: Admin &lt;<br><a href="mailto:admin@example.com"><br>admin@example.com</a>&gt;'</span><span> . "rn";  </span>
</li>
<li>
<span>$headers </span><span class="attribute">.</span><span>= </span><span class="attribute-value">'Reply-To: Xinple &lt;xinple@example&gt;'</span><span> . "rn";  </span>
</li>
<li class="alt"><span>mail($to, $subject, $message, $headers); </span></li>
</ol>

以上就是PHP mail()函数乱码的具体处理办法,希望对有需要的朋友有所帮助。


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446193.htmlTechArticle我们在使用 一般这种问题出现的原因是 mail() 函数的 header 参数里少了 Content-type: text/html; charset=utf-8,或者 charset 不是utf-8。很多国外的PHP程...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn