首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在sql中提取中文字母,以便在php中显示

问在sql中提取中文字母,以便在php中显示
EN

Stack Overflow用户
提问于 2016-10-08 05:21:35
回答 2查看 548关注 0票数 0

我试图从mysql数据库中检索中文字母,并在php上显示。我已经在网上试过了所有的东西,但它仍然显示给我看。在网站上。下面是与这个问题相关的代码:

代码语言:javascript
复制
<html class="fsvs" lang="zh-Hans" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

php部分:

代码语言:javascript
复制
$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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-08 05:29:26

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

代码语言:javascript
复制
echo mb_detect_encoding ( $text );

它显示来自我的查询的文本的编码。这显示了我从mysql_query获得ASCII时,我的数据库中有中文或俄文字符。

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

代码语言:javascript
复制
mysql_set_charset('UTF8');

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

所以,如果mb_detect_encoding现在给你UTF8作为你的文本,那么你就可以显示汉字。

下一步是确保您传递给浏览器的内容有正确的标题.

代码语言:javascript
复制
header('Content-Type: text/html; charset=UTF-8');

将上面的代码放在php中的代码顶部,以确保浏览器期待您的编码。

不过,这应该是问题所在,理想情况下,您应该使用PDO或mysqli,而不是使用mysql_connect方法。在这种情况下,等效的过程样式命令是..

代码语言:javascript
复制
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');
mysqli_set_charset($link, "utf8");

其中,$link相当于您与数据库的连接。

票数 0
EN

Stack Overflow用户

发布于 2016-10-08 06:02:26

不要混合mysql_*和mysqli_*调用,只使用后者。

https://stackoverflow.com/a/38363567/1766831解释了如何处理?。特别是它指出

  • 要存储的字节不被编码为utf8mb4 (别名UTF-8在MySQL之外)。把这个修好。
  • 数据库中的列是CHARACTER SET utf8mb4。把这个修好。
  • 此外,检查阅读期间的连接是否为UTF-8.

你的<meta ...>很好。

在MySQL中,中文使用utf8mb4 (而不是utf8)。

已经在表中的问号不能再转换成中文了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39928969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档