我正在尝试从mysql数据库检索中文字母并显示在php上。我已经尝试了互联网上的所有内容,但仍然显示“?” 在网站上。这是与这个问题有关的代码:
<html class="fsvs" lang="zh-Hans" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
在php部分:
$conn = mysqli_connect( $host, $user, $pass, $db );
if (!$conn) {
die('Database connection failed.');
}
//get gan char
mysql_query("SET character_set_results=utf8", $conn);
$query_gan = "SELECT * FROM gan WHERE gan_id = '$gan_id'";
$result_gan = mysqli_query($conn,$query_gan);
$row_gan = mysqli_fetch_array($result_gan);
提前致谢
当我遇到类似的问题时,我首先使用
echo mb_detect_encoding ( $text );
它显示了来自我的查询的文本的编码。这告诉我,当数据库中有中文或俄语字符时,我正在从mysql_query获取ASCII码。
我所做的更改是在mysql_connect之后添加以下内容
mysql_set_charset('UTF8');
我的数据库是utf8_unicode_ci排序规则,我可以看到中文字符。
因此,如果mb_detect_encoding现在为您的文本提供UTF8,那么您将能够显示中文字符。
下一步是确保传递给浏览器的内容具有正确的标头...
header('Content-Type: text/html; charset=UTF-8');
将以上内容放在php代码的顶部,以确保浏览器期望使用您的编码。
现在应该是问题了,但是理想情况下,您应该使用PDO或mysqli而不是mysql_connect方法。在这种情况下,等效的过程样式命令是..
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');
mysqli_set_charset($link, "utf8");
其中$ link等效于您与数据库的连接。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句