【发布时间】:2013-11-05 18:31:10
【问题描述】:
角色设定让我走弯路!
我的数据库是 utf8_general_ci,其中的表是 utf8_unicode_ci。 我所有的 PHP 页面都有
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
在头脑中。
当我在 PHP 页面中键入欧元符号 (€) 并将其输入到数据库时,它在 phpMyAdmin 中显示为 € 当我使用 PHP 页面从数据库中复制它时,它会重新显示为 €
到目前为止一切都很好,但是当我使用 PHP 编写 html 电子邮件时,无论我做什么,它都会在电子邮件中显示为 € 我尝试在 html 电子邮件中指定字符集,但它不起作用。可能是因为电子邮件客户端从邮件服务器而不是标题中获取其字符集。 我也遇到了重音字母等问题,但它们被写入文本中,所以我可以通过使用 é 来克服它们,等等。混乱,但并非不可能。
肯定有更好的方法!
我的解决方案(排序)
感谢所有做出贡献的人。我已经尝试了所有方法来将字符集指定为 utf-8(在邮件标头中、html 标头中以及两者中),但消息仍然以 iso 形式到达。所以看来我从别处得到的信息是对的:字符集是由服务器定义的。
每次我想在固定文本中输入 é 时,我都不得不满足于输入诸如 é 之类的内容,这很麻烦,但至少它有效。
对于欧元符号,我已将变量包装在 htmlentities 函数中。它有效,但如果我在类似文件中遇到类似问题,我将不得不记住使用从数据库中获取的任何其他变量。将函数包装在整个 html 主体周围会更容易,但这不起作用,大概是因为它用 .
【问题讨论】:
-
如何在 php 中发送电子邮件?通常你可以在正文中设置邮件的字符集
标签: php mysql email character-encoding