在数据库中,我在utf8_general_ci中设置了一个列并用来放一些中文单词。我可以用这种方式看到“香港”的字样,但是当我通过php选择数据并回显它们时,它们变成了“\ u9999 \ u6e2f”。那么我怎样才能得到像“香港”这样真实的中文单词。
<?php
include 'dbconfig.php'; //search queue by uid, display json
$link = mysql_connect($host, $uname, $pass) or
die("Database connection failed!");
mysql_select_db($database, $link) or
die("Database could not be selected!");
$keyword = $_POST['keyword'];
$query = "SELECT qid, qname, description FROM queuing WHERE setUpUid = '".$keyword."' AND isValid = true";
$result = mysql_query($query) or die("Fail");;
$cart = array();
while($array = mysql_fetch_array($result)){
$cart[] = array(
"qid" => $array['qid'],
"qname" => $array['qname'],
"description" => $array['description']
);
}
echo json_encode(array("response"=>$cart));
mysql_close($link);
?>
输出:{"response":[{"qid":"6","qname":"\u9999\u6e2f","description":"\u9999\u6e2f"}]}
答案 0 :(得分:0)
如果您使用的是PHP 5.4.0或更高版本,则必须设置JSON_UNESCAPED_UNICODE
:
echo json_encode(array("response"=>$cart), JSON_UNESCAPED_UNICODE);
防止unicode文字被转义。参考here:
JSON_UNESCAPED_UNICODE
:从字面上对多字节Unicode字符进行编码(默认为以\ uXXXX转义)。从PHP 5.4.0开始提供。