0

我有一个从数据库加载内容的页面。我将页面设置为使用 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');

我这样做是为了修复智能引号和破折号。但是,现在任何包含这些字符的字段都将返回空白。如果我在我的 htmlspecialchars 调用中去掉 'UTF-8' 参数,我会得到完整的文本,而引号应该是带问号的菱形字符。有什么我想念的吗?

4

1 回答 1

0

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

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

于 2011-10-28T16:25:26.713 回答