php mysql解析json utf-8编码问题

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代码如下:

<?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"}]