【发布时间】:2015-05-18 03:28:30
【问题描述】:
php 默认字符集是 UTF-8。 PHP 和 HTML 中的所有特殊字符都输出为问号,如“?”在浏览器中。所有带有特殊字符的数据都以 UTF-8 格式存储在数据库字段中。但是当 PHP 读取数据库并输出到浏览器时,所有的特殊字符如版权和商标符号都是?
数据不能编码为 htmlentities,否则数据会在浏览器中作为 html 代码输出。数据库中的字段具有 html 标记。这就像一个所见即所得的领域。
另一个类似的问题并没有真正解决问题。我的问题是 php 正在读取以 utf-8 编码的数据库字段,包括 html 标记、文本和特殊字符。然后将数据保存在另一个 utf-8 编码的数据库字段中。但是中间的东西是不对的。该过程完成后,新的mysql列中的特殊字符是?。因此浏览器正在显示?对于所有特殊字符。
$conn = new mysqli($host, $username, $password, $dbName);
mysql_set_charset('utf-8',$conn);
$categoryDescription = utf8_encode(utf8_decode($var['manufacturer_overview']));
【问题讨论】:
-
HTML 页面不能是 UTF8。检查请求中发送的标头。
标签: php character-encoding special-characters