【发布时间】:2013-10-01 23:45:15
【问题描述】:
我正在尝试用希伯来语打印 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","name":"\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
【问题讨论】:
-
除非您知道您的数据采用 ISO-8859-1 编码,否则请勿使用
utf8_encode()- 这不是灵丹妙药。 -
您的
Content-type标头最好由服务器设置,但如果您必须使用PHP 发送它,请在任何输出之前进行(即在顶部)。您还错过了charset=utf-8"上的报价