PHP/HTML中的所有特殊字符都是问号
All special characters are question marks in PHP/HTML
Php 默认字符集是 UTF-8。 PHP 和 HTML 中的所有特殊字符都输出为问号,如“?”在浏览器中。所有具有特殊字符的数据都以 UTF-8 格式存储在数据库字段中。但是当PHP读取数据库并输出到浏览器时,版权和商标符号等所有特殊字符都是?
数据不能编码为 html 实体,否则数据会在浏览器中作为 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.Check 如果 header 有
<meta charset="utf-8" />
2.Open 包含特殊内容的页面 char-set 仅在支持它们的编辑器中
3.This 就是我的情况
我使用 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;
}
所以它被编码了两次我删除了一个现在它工作正常。
希望这些对您有所帮助
谢谢
Php 默认字符集是 UTF-8。 PHP 和 HTML 中的所有特殊字符都输出为问号,如“?”在浏览器中。所有具有特殊字符的数据都以 UTF-8 格式存储在数据库字段中。但是当PHP读取数据库并输出到浏览器时,版权和商标符号等所有特殊字符都是?
数据不能编码为 html 实体,否则数据会在浏览器中作为 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.Check 如果 header 有
<meta charset="utf-8" />
2.Open 包含特殊内容的页面 char-set 仅在支持它们的编辑器中
3.This 就是我的情况
我使用 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;
}
所以它被编码了两次我删除了一个现在它工作正常。
希望这些对您有所帮助
谢谢