0

我有一个使用 utf8_general_ci 编码的数据库,但是当我使用 php 将数据提取到页面时,它显示“????”,这是怎么回事?

<?php
$query1 = "SELECT name FROM `kotegorii`";
$result1 = mysql_query($query1) or die(mysql_error());
echo "<h3>Категориялар</h3>";
while ($row = mysql_fetch_array($result1)) {

    echo $row['name']."<br>";
}
?>

代码也是使用 UTF-8 编码编写的..

4

3 回答 3

7

您必须在使用mysql_set_charset连接到数据库后立即将 MySQL 连接编码设置为 UTF-8 :

mysql_set_charset('utf8');

服务器使用连接编码向客户端发送信息,无论文本在存储中是如何编码的。默认情况下,连接编码latin1在许多安装中。

此外,您不应该mysql在新代码中使用旧 API;它已被弃用,并将在未来的某个版本中从 PHP 中删除。

于 2013-03-27T09:32:44.640 回答
0

您也应该设置页面编码。

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
    <!-- and so on -->
于 2013-03-27T09:27:29.083 回答
0

我不知道您的数据看起来如何,但您尝试过utf8_decode utf8_encode$row['name']

于 2013-03-27T09:28:13.413 回答