我必须显示本地数据库中的json数据,这是Bangla字体。当正常打印此数据时它正在工作,但是当使用json_encode
然后没有显示正确的数据时,表字段设置为uft8。
这是我尝试过的代码:
$mysqli = new mysqli("localhost", "root", "", "newspaper");
mysqli_set_charset($mysqli,"utf8");
$stmt = $mysqli->prepare("SELECT news_title FROM news_content ORDER BY id DESC limit 2");
$stmt->execute();
$result = $stmt->get_result();
while ($myrow = $result->fetch_assoc()) {
$data[] = $myrow['news_title'];
}
print_r($data);
echo json_encode($data);
这是print_r($data);
时的输出:
Array
(
[0] => বুলবুলির ছানা
[1] => টনি ডায়েসের প্রিয় সামিনা চৌধুরী, মেয়ের সেলেনা গোমেজ
)
和:
echo json_encode($data);
输出是:
["\u09ac\u09c1\u09b2\u09ac\u09c1\u09b2\u09bf\u09b0 \u099b\u09be\u09a8\u09be","\u099f\u09a8\u09bf \u09a1\u09be\u09df\u09c7\u09b8\u09c7\u09b0 \u09aa\u09cd\u09b0\u09bf\u09df \u09b8\u09be\u09ae\u09bf\u09a8\u09be \u099a\u09cc\u09a7\u09c1\u09b0\u09c0, \u09ae\u09c7\u09df\u09c7\u09b0 \u09b8\u09c7\u09b2\u09c7\u09a8\u09be \u0997\u09cb\u09ae\u09c7\u099c"]
我也尝试过:
echo json_encode($data, JSON_UNESCAPED_UNICODE);
和:
header('Content-Type: application/json');
echo json_encode($data, JSON_UNESCAPED_UNICODE);
我不确定是哪个问题,所以任何帮助对我都有帮助。
答案 0 :(得分:2)
正确的方法是将json_encode
与JSON_UNESCAPED_UNICODE
标志一起使用。
然后不会转义Unicode字符。