从MySQL中获取汉字


Get Chinese characters from MySQL

我正在尝试显示我保存在MySQL数据库中的汉字,该数据库保存在utf8_unicode_ci类型下。我在网上看到了几种解决方案,但都不起作用。

以下是我的连接文件:

$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);

但它仍然显示????。有什么想法吗?

如何解决。。。

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

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

当您将输出打印为HTML时,它在哪里显示"??"?如果是,请尝试在<head>元素中添加行

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

希望能有所帮助。

编辑似乎您需要在上声明UTF8

  1. character_set_results='utf8'
  2. character_set_client='utf8'
  3. character_set_connection='utf8'
  4. character_set_ database='utf8'
  5. character_set_server='utf8'"

结账PHP UTF8无法正确显示中文字符

这应该就是您所需要的。繁体和简体中文字符

 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" />