【发布时间】:2009-03-08 21:15:01
【问题描述】:
我有以下非常简单的代码,它检索 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);
}
【问题讨论】:
-
如果它没有以 UTF-8 格式返回,请展示它是如何返回的示例(包括十六进制解码,如果可能)!
-
并检查您的表是否实际配置为使用 UTF-8 排序规则
-
后者将无关紧要..“SET NAMES”的重点正是MySql将在适当时进行转换。
-
在这种情况下,我的表没有设置为使用 UTF-8 排序规则,所以我虽然 SET NAMES 会确保它是 utf8。但是,启用 SET NAMES 后,它不会显示为 utf8。如何显示显示内容的差异?
标签: php mysql character-encoding