Php MySQL在更改编码后抛出错误

Php MySQL在更改编码后抛出错误,php,mysql,character-encoding,Php,Mysql,Character Encoding,可能重复: 我有以下php代码 <?php mysql_connect("localhost","admin","***"); mysql_select_db("DbName"); $sql=mysql_query("select * from `menu`"); while($row=mysql_fetch_assoc($sql)) $output[]=$row; print(json_encode($output)); mysql_close(); ?> 我的猜测是,您的数据

可能重复:

我有以下php代码

<?php
mysql_connect("localhost","admin","***");
mysql_select_db("DbName");
$sql=mysql_query("select * from `menu`");
while($row=mysql_fetch_assoc($sql))
$output[]=$row;
print(json_encode($output));
mysql_close();
?>

我的猜测是,您的数据库连接仍然是ISO-8859-1,而
json\u encode()
需要UTF-8数据(如果遇到无效字符就会中断)

连接到数据库后,尝试发送以下查询:

如果您使用的是mySQL<5.0.7:

mysql_query("SET NAMES utf8;");
如果您使用的是较新的mySQL:

mysql_set_charset("utf8");

我的猜测是,您的数据库连接仍然是ISO-8859-1,而
json\u encode()
需要UTF-8数据(如果遇到无效字符就会中断)

连接到数据库后,尝试发送以下查询:

如果您使用的是mySQL<5.0.7:

mysql_query("SET NAMES utf8;");
如果您使用的是较新的mySQL:

mysql_set_charset("utf8");

请不要用“不工作”来描述你的问题。请始终准确描述发生的情况。警告:mysql\u fetch\u assoc()希望参数1是资源,布尔值在中给出,注意:未定义变量:以上两种情况下的输出请不要描述“不工作”的问题。请始终准确描述发生的情况。警告:mysql\u fetch\u assoc()希望参数1是资源,在中给出布尔值,注意:未定义变量:以上两种中的输出