

上面的是我数据库存的数据,采用的utf8_bin编码,开始的时候用的是utf8_unicode_ci,可是还是不行
下面是我的PHP代码
id = $row["id"];
$user -> name = $row["name"];
$user -> address = $row["address"];
$user -> phonenumber = $row["phonenumber"];
$data[] = $user;
}
if (function_exists('mysql_set_charset') === false) {
mysql_query("SET NAMES UTF8",$data);
}else{
mysql_set_charset('utf8',$data);
}
$response = array(
'code' => 200,
'message' => 'success for request',
'data' => $data,
);
echo urldecode(json_encode($response));
mysql_free_result($response); //释放
mysql_close();//关闭数据库
?>
最后在浏览器显示的是这个尿性
{
"code": 200,
"message": "success for request",
"data": [
{
"id": "100",
"name": "??",
"address": "????",
"phonenumber": "13212340001"
},
{
"id": "101",
"name": "??",
"address": "????",
"phonenumber": "13512340002"
},
{
"id": "100",
"name": "??",
"address": "????",
"phonenumber": "13212340001"
},
{
"id": "101",
"name": "??",
"address": "????",
"phonenumber": "13512340002"
},
{
"id": "0",
"name": "",
"address": "",
"phonenumber": "0"
},
{
"id": "103",
"name": "??",
"address": "????",
"phonenumber": "13512340005"
},
{
"id": "103",
"name": "??",
"address": "????",
"phonenumber": "13512340005"
}
]
}
为什么中文显示的是问号呢?我要的Unicode编码的就好了
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这一段应该放在
mysql_query之前,另外这两个地方的第二个参数也不应该是$data,而应该是$connect我之前也遇到过这个问题,加了个这个后就好了
mysqli_query($conn,"SET NAMES utf8");中文的urlencode 这个编码问题,我遇到的,不能直接进行解码。不然会出现乱码的。我使用的方式是。
单独编码。然后在解码,` /**
这一句应该放在遍历数据之前吧