我在数据库中存储unicode tamil字符我试图使用php在浏览器中显示它来检索它。我把它放在数组中并在json中获取它。 我得到以下输出
{
"product_id":"29",
"download_id":"ebbe8e1e1f4649bb8a51468828100d91",
"order_key":"wc_order_5492e914ee249",
"post_title":"\u0ba4\u0bae\u0bbf\u0bb4\u0bcd \u0bae\u0bc2\u0bb2\u0bbf\u0b95\u0bc8\u0b95\u0bb3\u0bcd \u0b89\u0ba3\u0bb5\u0bc1\u0b95\u0bc1\u0b95\u0bb3\u0bcd",
"status":"true"
}
我使用以下代码,
$sql = "SELECT wdp.product_id, wdp.download_id, wdp.order_key, wp.post_title
FROM product_permissions wdp, posts wp
WHERE wdp.user_email = 'testemail@gmail.com'
AND wdp.product_id = wp.ID";
$result = mysql_set_charset( 'utf8' );
$result = mysql_query($sql);
$int_num_field = mysql_num_fields($result);
while($row = mysql_fetch_array($result)){
$arr_col = array();
for($i=0;$i<$int_num_field;$i++){
echo $row[$i];
$arr_col[mysql_field_name($result,$i)] = $row[$i];
}
$arr_col['status']= 'true';
array_push($json,$arr_col);
}
array_push($person,$json);
$main = array('products'=>$json);
echo json_encode($main);
答案 0 :(得分:0)
试试这个
echo json_encode($main,JSON_UNESCAPED_UNICODE);
在php 5.4+中,php的json_encode确实有用于普通输出的JSON_UNESCAPED_UNICODE选项。在较旧的php版本中,您可以推出自己的不编码非ASCII字符的JSON编码器,或使用Pear's JSON编码器。
修改强>
或者您可以尝试此功能
function jsonRemoveUnicodeSequences($struct) {
return preg_replace("/\\\\u([a-f0-9]{4})/e", "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))", json_encode($struct));
}