我的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":"এক"},{"id":"2","name":"tmi","phone":"দুই"}]
但实际输出是
[{"id":"1","name":"ami","phone":"u0987u0982u09b2u09cdu09afu09beu09a8u09cdu09a1"},{"id":"2","name":"tmi","phone":"u0987u0982u09b2u09cdu09afu09beu09a8u09cdu09a1"}]
您获得此输出的原因是,数据实际上是以这种方式存储在数据库中的。它是将其转换为此表示形式的json_encode
方法。一旦你用任何json解码器解码它,你应该把你的unicode字符找回来。
这在这个答案中得到了进一步的解释:https://stackoverflow.com/a/594881/2232127
(澄清一下:这根本不是错误或问题。这是避免编码问题的预期和有用行为(