在php中将utf8更改为中文单词

时间:2014-01-25 17:26:57

标签: php utf-8

在数据库中,我在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"}]}

1 个答案:

答案 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开始提供。