mysql_fetch_array返回非Unicode文本

Hos*_*ari 5 php mysql unicode

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

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

?????ABC?????
Run Code Online (Sandbox Code Playgroud)

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

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
Run Code Online (Sandbox Code Playgroud)

任何的想法?!

Far*_*and 13

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

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET SESSION collation_connection = 'utf8_unicode_ci'");
Run Code Online (Sandbox Code Playgroud)

或者您可以编辑您的mysql配置以默认使用utf8.在这里查看您需要做什么.

在my.cnf中将MySQL默认字符集更改为UTF-8?

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'"); 
Run Code Online (Sandbox Code Playgroud)


Abh*_*hek 5

mysql_set_charset('utf8', $link);
Run Code Online (Sandbox Code Playgroud)

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