我有以下非常简单的代码,它检索 utf8 格式的数据,例如包含来自 mysql 数据库的变音符号,它可能会或可能不会设置为 utf8。如果我使用任何一种注释掉的方法来确保返回 utf8 数据,数据将不会作为 utf8 返回,但是如果我不使用它们,数据将被显示。为什么强制使用 utf8 会否定将数据显示为 utf8?
$con = mysqli_connect("localhost", "x", "", "x");
//$con->query("SET NAMES 'utf8'");
//$con-set_charset('utf8');
$recordsQuery = "SELECT ARTICLE_NAME FROM AUCTIONS1";
if ($getRecords = $con->prepare($recordsQuery)) {
$getRecords->execute();
$getRecords->bind_result($ARTICLE_NAME);
while ($getRecords->fetch()) {
echo "$ARTICLE_NAME";
}
} khác {
print_r($con->error);
}
也许错误在于您为页面提供服务的字符集。如果您从数据库中获取 UTF-8 内容并使用 Windows-1252 的默认 HTML 字符集提供它,那么它看起来会出现乱码。确保你有这样的等价物:
header( 'Content-Type: text/html; charset=utf-8' );
在您的 PHP 代码中。
Tôi là một lập trình viên xuất sắc, rất giỏi!