首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql_fetch_array返回非Unicode文本。

问mysql_fetch_array返回非Unicode文本。
EN

Stack Overflow用户
提问于 2012-08-14 01:22:56
回答 3查看 7.6K关注 0票数 5

我创建了一个简单的PHP页面来获取POST数据并获取sql查询,然后打印结果。我使用的是mysql_fetch_array函数。

代码运行良好,但响应是非Unicode文本,并返回如下内容:

代码语言:javascript
复制
?????ABC?????

请注意,数据库排序规则为UTF8,并且存储的数据在phpMyAdmin中显示正确。我甚至在php页面中使用了这个META标签,但它的结果是一样的:

代码语言:javascript
复制
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">

有什么想法吗?!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-14 02:02:02

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

代码语言:javascript
复制
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对象:

代码语言:javascript
复制
$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'"); 
票数 16
EN

Stack Overflow用户

发布于 2012-08-14 01:45:13

代码语言:javascript
复制
mysql_set_charset('utf8', $link);

其中,$link是使用mysql_connect创建的连接

票数 4
EN

Stack Overflow用户

发布于 2012-08-14 01:27:06

尝试为details http://php.net/manual/en/function.mb-internal-encoding.php使用mb_internal_encoding("UTF-8");

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11939216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档