我已经创建了一个简单的PHP页面来获取POST数据并获取sql查询然后打印结果。我正在使用mysql_fetch_array函数。
代码运行良好,但响应是非Unicode文本,它返回如下内容:
?????ABC?????
请注意,数据库排序规则是UTF8,存储的数据在phpMyAdmin中正确显示。我甚至在php页面中使用了这个META标签,但结果相同:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
有什么想法吗?!
答案 0 :(得分:12)
在第一个查询之前添加以下代码行:
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET SESSION collation_connection = 'utf8_unicode_ci'");
或者您可以编辑您的mysql配置以默认使用utf8。在这里查看您需要做什么。
Change MySQL default character set to UTF-8 in my.cnf?
不推荐使用函数mysql_query
,因此mysqli
对象可以这样使用:
$mysqli = new mysqli("localhost", "MYSQL_USER", "MYSQL_PASS", "MYSQL_DB");
$mysqli->query("SET NAMES 'utf8'");
$mysqli->query("SET CHARACTER SET utf8");
$mysqli->query("SET SESSION collation_connection = 'utf8_unicode_ci'");
答案 1 :(得分:3)
mysql_set_charset('utf8', $link);
其中$ link是使用mysql_connect创建的连接
答案 2 :(得分:-1)
尝试使用 mb_internal_encoding(“UTF-8”); 了解详情[{3}}