我正在尝试用希伯来语打印 JSON,但只得到 utf-8 编码的字符串。 如何确保客户端的浏览器以希伯来语显示字符串?
代码为:
<html>
<head>
<meta charset=utf-8" />
</head>
<body>
<?php
header('Content-Type: text/html; charset=utf-8');
$response = array();
require_once __DIR__.'/db_connect.php';
$db = new DB_CONNECT();
$result = mysql_query(" SELECT * FROM stores") or die(mysql_error());
if (mysql_num_rows($result)>0){
$response["stores"]=array();
while($row = mysql_fetch_array($result)){
$store = array();
$store["_id"]=$row["_id"];
$store["name"]=$row["name"];
$store["store_type"]=$row["store_type"];
array_push($response["stores"],$store);
}
$response["success"] = 1;
$string = utf8_encode(json_encode($response));
echo hebrevc($string);
}else{
$response["success"]=0;
$response["message"]="No stores found";
echo utf8_encode(json_encode($response));
}
?>
</body>
</html>
响应是:
{{"stores":[{"_id":"1","name":"''u05d7''u05ea''u05d5''u05dc''u05d9","store_type":"''u05de''u05e1''u05e2''u05d3''u05ea
PHP 5.4 中添加了一个很好的常量: JSON_UNESCAPED_UNICODE
使用它不会逃脱你的希伯来字符。
echo json_encode($response, JSON_UNESCAPED_UNICODE);
查看json_encode参考。
结果看起来像 UCS-2 字符串。尝试设置 Mysql 连接的字符集:
mysql_set_charset('utf8', $conn)
然后删除utf8_encode
语句