2014-01-25 40 views
-1

在数据库中,我在utf8_general_ci中设置了一列,并用于放置一些中文单词。我可以用“香港”这种方式看到这些单词,但是当我通过php选择数据并回显单词时,它们变成了这个“\ u9999 \ u2f2f”。那么我怎样才能得到像“香港”这样真正的中文词汇。在php中将utf8更改为中文单词

<?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

http://stackoverflow.com/questions/279170/utf-8-all-the-way-through [PDO查询 – Mihai

+0

可能重复返回很多,我不能转换为Unicode为\ uXXXX字符代码字符(http://stackoverflow.com/questions/16583954/pdo-query-returns-lots-of-uxxxx-character-codes-which-i-cant-convert-to-unicod) – deceze

回答

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起可用。