PHP htmlspecialchars和字符集问题

时间:2011-10-28 16:16:26

标签: php htmlspecialchars

我有一个从数据库加载内容的页面。我将页面设置为使用utf-8

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

我已将db上的排序规则设置为utf8_unicode_ci,并使用以下方法从mysql访问该字段:

$desc = htmlspecialchars($row['description'],ENT_QUOTES,'UTF-8');

我这样做是为了修复智能引号和em-dashes。但是,包含这些字符的任何字段现在都将返回空白。如果我在htmlspecialchars调用中删除了'UTF-8'参数,我会得到全文,其中只有引号应该是带有questionmark-in-a-diamond字符。有什么我想念的吗?

1 个答案:

答案 0 :(得分:0)

如果您返回空字符串,则可能表示数据库中的内容中存在无效的UTF-8字符。你也可以设置ENT_IGNORE标志,但是我建议用一个有问题的字符串进行二进制搜索,试着找出确切的字符是什么。

http://www.php.net/manual/en/function.htmlspecialchars.php。请参阅返回值下的部分。

相关问题