[英]All special characters are question marks in PHP/HTML
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']));
我有类似的问题
但可因多种原因引起。
1.检查标题是否有
<meta charset="utf-8" />
2.仅在支持它们的编辑器中打开包含特殊字符集的页面
这就是我的情况
我使用php函数utf8_encode()
保存数据库,但也在数据库中我的执行函数中它已经存在
mysql_set_charset('utf8',$dbSelect);
我的功能看起来像这样
public function execute($sql,$useDb = 1)
{
if($useDb == static::LOCAL)
{
$dbSelect = $this->conexion;
}elseif ($useDb == static::REMOTE)
{
$dbSelect = $this->paisConexion;
}
mysql_set_charset('utf8',$dbSelect);
$result = mysql_query($sql,$dbSelect) or die("ERROR: Ejecución de consulta: $sql<br>\n");
return $result;
}
所以它被编码两次我删除了一个,现在它工作正常。
希望这些都有帮助
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.