我在编码方面遇到了一个奇怪的问题,描述如下:
ù 现在显示为 Á在电子邮件主题中。邮件是通过php的mail函数发送的。
查看邮箱中的邮件时,显示正确。然而,当有人打开电子邮件时,ù 突然变成了 à。
Uw contact met Meeùs
应该
Uw contact met Meeùs
我已经使用了编码。
$emailsubject
包含上述电子邮件主题。
$subject=$emailsubject;
$subject=$emailsubject;
$email_message=new email_message_class;
$email_message->SetEncodedEmailHeader("To",$to_address,$to_name);
$email_message->SetEncodedEmailHeader("From",$from_address,$from_name);
$email_message->SetEncodedEmailHeader("Reply-To",$reply_address,$reply_name);
$email_message->SetHeader("Sender",$from_address);
$email_message->SetEncodedHeader("Subject",$subject,"UTF-8");
在本地主机中它可以正常工作,但在网络服务器中它不能正常工作。在网络服务器中,编码默认设置为 utf-8。
我做错了什么?
提前致谢。
您的代码绝对正确,没有错误,但其他内容编码失败。因为我需要消息源标头和消息来准确地告诉您发生了什么?我还没有关于您以纯文本还是 HTML 形式发送电子邮件的信息。但普遍存在两个问题:
失踪的哑剧版本
错误显示字符的原因是开发人员忘记将消息描述为 MIME 版本。如果邮件缺少 Internet 邮件标准要求的“Mime-Version”标头,Webmail 将完全忽略“charset”标头,从而使邮件出现乱码,除非它已采用 UTF-8 字符集。
显示带有特殊字符的主题
由于您想使用 utf-8 编码显示主题,因此您必须将主题编码为:
//Setting the Language as Japan
mb_language("ja");
//Converting the string into Japan Encoding
$subject = mb_convert_encoding($subject, "ISO-2022-JP","AUTO");
//Now convert the string to MIME Header type
$subject = mb_encode_mimeheader($subject);
如果上述方法不能解决问题,则要求您发布电子邮件的原始标头,因为这将有助于更好地解决问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)