电子邮件中的Html特殊字符

时间:2011-07-14 13:50:40

标签: php html email encoding htmlspecialchars

我写了一个脚本来阅读邮箱中的电子邮件。

在某些电子邮件中,我将一些数据转换为wiered字符,这些字符会影响我的进一步处理。

这些角色看起来像这样http://brucejohnson.ca/HTMLCharacters13.html

知道如何将它们转换为原创内容。

3 个答案:

答案 0 :(得分:1)

如果脚本给你这些字符,那么你有两个选项,按原样看字符,或者看到该字符的数字等价物(各种基础 - 八进制,十六进制等)。

您确定您的脚本没有尝试读取加密邮件,并且您的脚本运行正常吗?

尝试通过您编写的函数/脚本放置一些虚拟测试数据,看它是否产生您期望的输出。

希望这有帮助

答案 1 :(得分:0)

您需要先检查电子邮件标头中的字符集编码。

完成此操作后,您可以选择2种方法中的1种,更改HTML中的字符集或将字符集(如果可能)更改为您已使用的字符集(可能是UTF-8)

如果您动态更改标题中的HTML字符集,那么您最大的问题是用户需要在其浏览器设置中指定正确的字符集,例如我的设置为UTF-8,但我的电子邮件是ISO-8859- 1所以,如果我每次看网站时都要使用这种方法,我需要更改我的浏览器字符集,但是我的一个朋友将ISO-8859-1作为他的正常字符集,所以他没有问题。

如果您将字符编码为UTF-8(例如php中的utf8_encode),则需要确保内容不是UTF-8,否则您可能会发现编码功能会创建其他无效字符。

我处理这个的方法基本上是解码电子邮件的mime头,然后在PHP中使用preg_match来检测正在使用的字符集,从那里我运行编码到UTF-8。

这是一个非常复杂的活动,有时根据电子邮件的发件人处理邮件和各种字符集,你事先并不真正知道将使用什么字符集,所以你需要真正了解各种字符集,它们是如何最佳存储如果存储它们以及它们如何最佳显示,则需要将其转换为您的应用和目标市场。

祝你的应用好运

答案 2 :(得分:-1)

你检查过字符编码必须是UTF-8。如果是western europian then change to UTF-8