我有以下非常简单的代码,它检索utf8 formatetd数据,例如包含来自mysql数据库的变音符号,可能会也可能不会设置为utf8。如果我使用任何一种注释掉的方法来确保返回utf8数据,那么数据将不会以utf8的形式返回,但是如果我将其关闭,则会显示数据。为什么强制utf8否定将数据显示为utf8?
<?php
$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 "<p>$ARTICLE_NAME";
}
} else {
print_r($con->error);
}
答案 0 :(得分:3)
错误可能在于您为该页面提供服务的字符集。如果您从数据库中获取UTF-8内容并使用Windows-1252的默认HTML字符集提供它,那么它将看起来像是乱码。确保你有相同的:
header( 'Content-Type: text/html; charset=utf-8' );
在PHP代码中。
答案 1 :(得分:0)
如果您仍然遇到问题,请提供更多数据,尤其是预期以及最终交付的内容