【问题标题】:PHP htmlspecialchars and character sets issuePHP htmlspecialchars 和字符集问题
【发布时间】:2011-10-28 16:16:25
【问题描述】:

我有一个从数据库加载内容的页面。我将页面设置为使用 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' 参数,我会得到完整的文本,而引号应该是带问号的菱形字符。我有什么遗漏吗?

【问题讨论】:

    标签: php htmlspecialchars


    【解决方案1】:

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

    http://www.php.net/manual/en/function.htmlspecialchars.php。参见返回值部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 2014-05-31
      • 1970-01-01
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      • 2014-03-24
      相关资源
      最近更新 更多