在我的PHP页面中,产品说明出现了臭名昭着的问题。
啊哈!我想 - 我必须记得将整个网站移到UTF-8。所以我:
mysql_set_charset('utf8');
和array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
命令中指定。我正在将网站迁移到PDO - 所以仍处于过渡阶段。保存和读取产品描述的网站的实际部分都使用新的PDO方法。 ini_set('default_charset', 'utf-8');
。 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
。我通过检查它是否出现来验证没有缓存问题。 utf8_general_ci
。但错误仍然存在。它甚至出现在新产品上,当我编辑产品以删除并重新添加英镑符号时。有什么我想念的吗?
答案 0 :(得分:2)
我发现了问题。当我将它们回显到浏览器时,我正在将htmlentities()
扔到字符串上以确保安全性。我应该抛出:
htmlentities($string, ENT_COMPAT | ENT_HTML401, "UTF-8");
要纠正这个问题。
答案 1 :(得分:0)
还有2件事
header("Content-Type: text/html; charset=utf-8");