我正在尝试用希伯来语打印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>
,回复是:
{{ “存储”:[{ “_ ID”: “1”, “名称”: “\ u05d7 \ u05ea \ u05d5 \ u05dc \ u05d9”, “store_type”:“\ u05de \ u05e1 \ u05e2 \ u05d3 \ u05ea \ u05d1 \ u05e9 \ u05e8 \ u05d9 \ u05dd“},{”_ id“:”2“,”name“:”\ u05de \ u05e2 \ u05d3 \ u05e0 \ u05d9 \ u05de \ u05d0 \ u05de \ u05d9“,”store_type “:”\ u05de \ u05e1 \ u05e2 \ u05d3 \ u05d4 \ u05dc \ u05e8 \ u05d5 \ u05e1 \ u05d9 \ u05dd“}],”成功“:1
答案 0 :(得分:2)
PHP 5.4中添加了一个很好的常量: JSON_UNESCAPED_UNICODE
使用它不会逃避您的希伯来字符。
echo json_encode($response, JSON_UNESCAPED_UNICODE);
答案 1 :(得分:0)
结果看起来像UCS-2字符串。尝试设置Mysql连接的字符集:
mysql_set_charset('utf8', $conn)
然后删除utf8_encode
语句