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