Php 从MySQL获取中文字符
我试图显示我保存在MySQL数据库中的汉字,该数据库保存在utf8\uUnicode\uCI类型下。我在网上看到了几种解决方案,但都不管用 下面是我的连接文件: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
$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:
元素
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
希望能有点帮助
编辑
似乎您需要在以下位置声明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字节的汉字。