从 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);
但是还是显示????。有什么想法吗?
当您将输出打印到 HTML 时,它在哪里显示“???”?
如果是这样,请尝试将行
添加到 <head>
元素
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
希望对您有所帮助。
编辑
看来您需要在以下位置声明 UTF8:
- character_set_results = 'utf8',
- character_set_client = 'utf8',
- character_set_connection = 'utf8',
- character_set_database = 'utf8',
- character_set_server = 'utf8'"
结帐
PHP UTF8 not displaying chinese characters properly
如何解决...
当我遇到类似问题时,我首先使用
在 php 中显示我的文本编码
echo mb_detect_encoding ( $text );
它显示了来自我的查询的文本的编码。这告诉我,当我的数据库中有中文或俄文字符时,我从 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 相当于您与数据库的连接。
这应该就是您所需要的。繁体字和简体字都可以
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" />
我正在尝试显示保存在 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);
但是还是显示????。有什么想法吗?
当您将输出打印到 HTML 时,它在哪里显示“???”? 如果是这样,请尝试将行
添加到<head>
元素
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
希望对您有所帮助。
编辑 看来您需要在以下位置声明 UTF8:
- character_set_results = 'utf8',
- character_set_client = 'utf8',
- character_set_connection = 'utf8',
- character_set_database = 'utf8',
- character_set_server = 'utf8'"
结帐 PHP UTF8 not displaying chinese characters properly
如何解决...
当我遇到类似问题时,我首先使用
在 php 中显示我的文本编码echo mb_detect_encoding ( $text );
它显示了来自我的查询的文本的编码。这告诉我,当我的数据库中有中文或俄文字符时,我从 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 相当于您与数据库的连接。
这应该就是您所需要的。繁体字和简体字都可以
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" />