PHP,SMTP-电子邮件中的主题将国际字符显示为HTML_Entities

我已经花了半天的时间-只是想让电子邮件“主题”看起来正常.但是,当电子邮件到达收件箱时,国际字符将显示为HTML_Entities.

例如:TydzieńoJedność

显示为:Tydzień o杰德诺ść

我已经为UTF-8编码了电子邮件主题:

$this-> subject =“ =?UTF-8?B?” . base64_encode($this-> subject). “?=”;

当我收到电子邮件(Gmail)时,标题显示为:

主题:=?UTF-8?B?VHlkemllJiMzMjQ7IG8gSmVkbm8mIzM0NzsmIzI2Mzs =?=

因此它似乎编码正确.但是由于某些原因,Gmail仍然显示带有HTML_Entities的主题.

有任何想法吗?

查看代码:SMTP mail class

解决方法:

$this->主题是否为有效的UTF-8字符串?您是否正在使用UTF-8编码的.php文件(没有BOM)?

另外,尝试执行以下操作:

$this->subject = "=?UTF-8?B?" . base64_encode(html_entity_decode($this->subject, ENT_COMPAT, 'UTF-8')) . "?=";
上一篇:PHP-MySQL无法识别韩文字符


下一篇:为什么java.net.URLEncoder对相同的字符串给出不同的结果?