我创建了一个简单的PHP页面来获取POST数据并获取sql查询,然后打印结果。我使用的是mysql_fetch_array函数。
代码运行良好,但响应是非Unicode文本,并返回如下内容:
?????ABC?????请注意,数据库排序规则为UTF8,并且存储的数据在phpMyAdmin中显示正确。我甚至在php页面中使用了这个META标签,但它的结果是一样的:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">有什么想法吗?!
发布于 2012-08-14 02:02:02
在第一个查询之前添加以下代码行:
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'"); 发布于 2012-08-14 01:45:13
mysql_set_charset('utf8', $link);其中,$link是使用mysql_connect创建的连接
发布于 2012-08-14 01:27:06
尝试为details http://php.net/manual/en/function.mb-internal-encoding.php使用mb_internal_encoding("UTF-8");
https://stackoverflow.com/questions/11939216
复制相似问题