gpt4 book ai didi

php - 获取sql中的中文字母以在php中显示

转载 作者:行者123 更新时间:2023-11-29 20:13:40 25 4
gpt4 key购买 nike

我正在尝试从 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);

提前致谢:D

最佳答案

当我遇到类似的问题时,我首先使用 php 显示文本的编码

echo mb_detect_encoding ( $text );

它显示了来 self 的查询的文本的编码。这表明当我的数据库中有中文或俄语字符时,我从 mysql_query 获取 ASCII。

我所做的更改是在 mysql_connect 之后添加以下内容

mysql_set_charset('UTF8');

我的数据库是utf8_unicode_ci排序规则,我可以看到中文字符。

因此,如果 mb_detect_encoding 现在为您的文本提供 UTF8,那么您将能够显示中文字符。

下一步是确保传递给浏览器的内容具有正确的 header ...

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 相当于您与数据库的连接。

关于php - 获取sql中的中文字母以在php中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39928969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com