Php 从MySQL获取中文字符

Php 从MySQL获取中文字符,php,mysql,utf-8,Php,Mysql,Utf 8,我试图显示我保存在MySQL数据库中的汉字,该数据库保存在utf8\uUnicode\uCI类型下。我在网上看到了几种解决方案,但都不管用 下面是我的连接文件: $conn = mysql_connect("localhost","root","password"); mysql_set_charset('utf8',$conn); mysql_query("SET CHARACTER SET utf8 "); mysql_select_db("database"); 以下是我的疑问: mys

我试图显示我保存在MySQL数据库中的汉字,该数据库保存在utf8\uUnicode\uCI类型下。我在网上看到了几种解决方案,但都不管用

下面是我的连接文件:

$conn = mysql_connect("localhost","root","password");
mysql_set_charset('utf8',$conn);
mysql_query("SET CHARACTER SET utf8 ");
mysql_select_db("database");
以下是我的疑问:

mysql_query("SET character_set_results=utf8", $conn);

$sql = mysql_query("select * from webdata",$conn);
但它仍然显示出????。有什么想法吗?

当您将输出打印为HTML时,它会显示在哪里? 如果是,请尝试将该行添加到
元素

<meta http-equiv="Content-type" content="text/html; charset=utf-8" />

希望能有点帮助

编辑 似乎您需要在以下位置声明UTF8:

  • 字符集结果='utf8'
  • 字符集客户端='utf8'
  • 字符集连接='utf8'
  • 字符集数据库='utf8'
  • 字符集服务器='utf8''
  • 结帐

    当您将输出打印为HTML时,它在哪里显示“?”? 如果是,请尝试将该行添加到
    元素

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    
    
    
    希望能有点帮助

    编辑 似乎您需要在以下位置声明UTF8:

  • 字符集结果='utf8'
  • 字符集客户端='utf8'
  • 字符集连接='utf8'
  • 字符集数据库='utf8'
  • 字符集服务器='utf8''
  • 结帐 如何解决

    当我遇到类似问题时,我首先使用

    echo mb_detect_encoding ( $text );
    
    它显示了来自我的查询的文本的编码。这表明当我的数据库中有中文或俄文字符时,我是从mysql_查询中获得ASCII的

    我所做的更改是在mysql\u连接之后添加了以下内容

    mysql_set_charset('UTF8');
    
    我的数据库是utf8\U unicode\U ci排序,我可以看到汉字

    所以,如果mb_detect_编码现在为您的文本提供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相当于您与数据库的连接。

    如何解决

    当我遇到类似问题时,我首先使用

    echo mb_detect_encoding ( $text );
    
    它显示了来自我的查询的文本的编码。这表明当我的数据库中有中文或俄文字符时,我是从mysql_查询中获得ASCII的

    我所做的更改是在mysql\u连接之后添加了以下内容

    mysql_set_charset('UTF8');
    
    我的数据库是utf8\U unicode\U ci排序,我可以看到汉字

    所以,如果mb_detect_编码现在为您的文本提供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相当于您与数据库的连接。

    这应该就是您所需要的全部。繁体字和简体字

     1. Make sure your table is set to COLLATION utf8_general_ci
     2. $con = new mysqli("localhost",$username,$password,$database) or die("Error " . mysqli_error($con)); $con->query("SET NAMES 'utf8'");
     3. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    
    1。确保您的表设置为排序规则utf8\U常规\U ci
    2. $con=newmysqli(“localhost”,“username”,“password”,“database”)或die(“Error”.mysqli_Error($con))$con->query(“设置名称‘utf8’”);
    3.
    
    这应该是您所需要的全部。繁体字和简体字

     1. Make sure your table is set to COLLATION utf8_general_ci
     2. $con = new mysqli("localhost",$username,$password,$database) or die("Error " . mysqli_error($con)); $con->query("SET NAMES 'utf8'");
     3. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    
    1。确保您的表设置为排序规则utf8\U常规\U ci
    2. $con=newmysqli(“localhost”,“username”,“password”,“database”)或die(“Error”.mysqli_Error($con))$con->query(“设置名称‘utf8’”);
    3.
    
    我认为问题在于,您无法在计算机上显示中文字符来解释该语言。您可能需要添加中文作为输入语言来完成此操作,但我不确定。您的html中是否包含此内容?如何显示数据?感谢您的回复。但是,如果我将字符直接编码到HTML中,我就能够显示这些字符。但由于某种原因,当我试图从MySQL中提取它时,它没有显示出来。我确实有元字符集。我使用$sql['chinese_data']显示它;你的问题解决了吗?如果是的话,请把它贴出来,这样我们就可以知道你做了什么。我认为问题是你不能在你的电脑上显示汉字来解释那种语言。您可能需要添加中文作为输入语言来完成此操作,但我不确定。您的html中是否包含此内容?如何显示数据?感谢您的回复。但是,如果我将字符直接编码到HTML中,我就能够显示这些字符。但由于某种原因,当我试图从MySQL中提取它时,它没有显示出来。我确实有元字符集。我使用$sql['chinese_data']显示它;你的问题解决了吗?如果是的话,请发布它,这样我们就可以知道你做了什么。是的,当我输出到HTML时,我添加了meta标记,但它仍然是一样的。数据库中的数据是否正确地存储在中文中?是的,我检查了数据库中的数据,它显示了汉字字符扫描,你把你的整个问题加起来。你应该考虑使用UTF8Mb4而不是UTF8,因为有几个4字节的汉字。是的,当我输出到HTML时,我添加了meta标签,但是它仍然是相同的。数据库中的数据是用中文正确存储的吗?是的,我检查了数据库中的数据,它显示了汉字字符扫描,你把整个问题加起来?你应该考虑使用UTF8MB4而不是UTF8,因为有几个4字节的汉字。