从MS Word粘贴时编码PHP和撇号的问题

时间:2011-01-20 19:22:48

标签: php encoding ms-word

我有一个通过电子邮件发送到我的电子邮件地址的表单。一切正常,除非有人将MS Word中的内容粘贴到表单中。所有文本都通过,但撇号和双引号的编码都搞砸了。他们是奇怪的角色。

无论如何都可以轻松解决这个问题吗?

4 个答案:

答案 0 :(得分:9)

对我来说,这个解决方案很好用:

将Windows转换后的字符串转换为utf-8。

$str = iconv("cp1252","UTF-8", $str);
  • cp866 MS DOS Cyrillic
  • cp1251 Windows Cyrillic
  • cp1253 Windows西欧语言

有关iconv()

的更多信息

答案 1 :(得分:2)

MS Word使用在UTF8下无效的撇号和引号。这是一篇关于SO的文章:

PHP - Getting rid of curly apostrophes

答案 2 :(得分:0)

您是否尝试过使用strip_tags()

答案 3 :(得分:0)

您需要在表单html页面和生成电子邮件内容的页面上使用相同的字符集。例如,在显示表单的html页面上设置utf-8。此外,在提交时创建邮件消息时,将标题中的字符集设置为utf-8。这很好。 如果您使用phpmailer进行电子邮件,则可以通过phpmailer类对象设置charset,如feed_dict 当您从数据库存储和检索时,这很有效。诀窍是让编码方案始终保持一致。