php mysql解析json utf-8编码问题
我的php代码如下:php mysql解析json utf-8编码问题,php,mysql,json,Php,Mysql,Json,我的php代码如下: <?php $HostName = "localhost"; $HostUser = "root"; $HostPass = "pass"; $DatabaseName = "test"; $conn = new mysqli($HostName, $HostUser, $HostPass, $DatabaseName); $conn->set_charset("utf8"); if ($conn->connect_error) { die("Co
<?php
$HostName = "localhost";
$HostUser = "root";
$HostPass = "pass";
$DatabaseName = "test";
$conn = new mysqli($HostName, $HostUser, $HostPass, $DatabaseName);
$conn->set_charset("utf8");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM demo";
$result = $conn->query($sql);
if ($result->num_rows >0) {
while($row[] = $result->fetch_assoc()) {
$tem = $row;
$json = json_encode($tem);
}
} else {
echo "No Results Found.";
}
echo $json;
$conn->close();
?>
但实际产出是
[{"id":"1","name":"ami","phone":"\u0987\u0982\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1"},{"id":"2","name":"tmi","phone":"\u0987\u0982\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1"}]
获得此输出的原因是数据实际上以这种方式存储在数据库中。是
json\u encode
方法将其转换为这种表示形式。一旦使用任何json解码器对其进行解码,就应该返回unicode字符
这在本答复中作了进一步解释:
(澄清一下:这根本不是一个bug或问题。这是一个预期的、有用的行为,可以避免编码问题)
[{"id":"1","name":"ami","phone":"\u0987\u0982\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1"},{"id":"2","name":"tmi","phone":"\u0987\u0982\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1"}]