我有一个使用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编码编写..
答案 0 :(得分:7)
在使用mysql_set_charset连接数据库后,您必须立即将MySQL连接编码设置为UTF-8:
mysql_set_charset('utf8');
无论文件在存储中的编码方式如何,服务器都使用连接编码向客户端发送信息。在许多安装中,默认情况下连接编码为latin1
。
此外,您不应在新代码中使用旧的mysql
API;它已被弃用,并将在以后的某个版本中从PHP中删除。
答案 1 :(得分:0)
您也应该设置页面编码。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<!-- and so on -->
答案 2 :(得分:0)
我不知道您的数据有何效果,但您是否在utf8_decode
上尝试了utf8_encode
$row['name']
?