php – mysql_fetch_array返回非Unicode文本

前端之家收集整理的这篇文章主要介绍了php – mysql_fetch_array返回非Unicode文本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我已经创建了一个简单的PHP页面获取POST数据并获取SQL查询然后打印结果.我正在使用MysqL_fetch_array函数.

代码工作得很好,但响应是非Unicode文本,它返回如下内容

?????ABC?????

请注意,数据库排序规则是UTF8,并且存储的数据在PHPMyAdmin中正确显示.我甚至在PHP页面中使用了这个Meta标签,但结果相同:

<Meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">

任何的想法?!

最佳答案
在第一个查询之前添加以下代码行:

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?

UPDATE

不推荐使用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'"); 

猜你在找的MySQL相关文章