我有一个从数据库加载内容的页面。我将页面设置为使用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字符。有什么我想念的吗?
答案 0 :(得分:0)
如果您返回空字符串,则可能表示数据库中的内容中存在无效的UTF-8字符。你也可以设置ENT_IGNORE标志,但是我建议用一个有问题的字符串进行二进制搜索,试着找出确切的字符是什么。
http://www.php.net/manual/en/function.htmlspecialchars.php。请参阅返回值下的部分。