我有一个通过电子邮件发送到我的电子邮件地址的表单。一切正常,除非有人将MS Word中的内容粘贴到表单中。所有文本都通过,但撇号和双引号的编码都搞砸了。他们是奇怪的角色。
无论如何都可以轻松解决这个问题吗?
答案 0 :(得分:9)
对我来说,这个解决方案很好用:
将Windows转换后的字符串转换为utf-8。
$str = iconv("cp1252","UTF-8", $str);
有关iconv()
答案 1 :(得分:2)
MS Word使用在UTF8下无效的撇号和引号。这是一篇关于SO的文章:
答案 2 :(得分:0)
您是否尝试过使用strip_tags()
?
答案 3 :(得分:0)
您需要在表单html页面和生成电子邮件内容的页面上使用相同的字符集。例如,在显示表单的html页面上设置utf-8。此外,在提交时创建邮件消息时,将标题中的字符集设置为utf-8。这很好。
如果您使用phpmailer进行电子邮件,则可以通过phpmailer类对象设置charset,如feed_dict
当您从数据库存储和检索时,这很有效。诀窍是让编码方案始终保持一致。