日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

php显示json,PHP解决JSON中文显示问题

發(fā)布時(shí)間:2025/3/8 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php显示json,PHP解决JSON中文显示问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

PHP如何解決JSON中文顯示問(wèn)題?本文主要介紹了PHP JSON格式的中文顯示問(wèn)題解決方法,本文總結(jié)了3種解決中文顯示\u開頭字符問(wèn)題的方法。希望對(duì)大家有所幫助。

返回json數(shù)據(jù)中文顯示的問(wèn)題

解決方法一:<?php

function Notice(){

include './include/conn.php'; //數(shù)據(jù)庫(kù)鏈接文件

$sql_notice = mysql_query('SELECT * FROM gg_notice where enable = "1" limit 0,10');

$notice = mysql_fetch_array($sql_notice, MYSQL_ASSOC);

$str = json_encode($notice);

//linux

return preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2BE', 'UTF-8', pack('H4', '\\1'))", $str);

//windows

//return preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2LE', 'UTF-8', pack('H4', '\\1'))", $str);

}

?>

另外從網(wǎng)上搜索到的其他方法<?php

/**

* json 生成,分析 支持中文

*/

class Json_Helper {

/**

* 生成json

*/

public static function encode($str){

$json = json_encode($str);

//linux

return preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2BE', 'UTF-8', pack('H4', '\\1'))", $json);

//windows

//return preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2LE', 'UTF-8', pack('H4', '\\1'))", $json);

}

/**

* 分析json

*/

public static function decode($str) {

return json_decode($str);

}

}

?>

這是從網(wǎng)上搜索得到的又一篇相關(guān)文章

當(dāng)使用php自帶的json_encode對(duì)數(shù)據(jù)進(jìn)行編碼時(shí),中文都會(huì)變成unicode,導(dǎo)致不可讀。如:對(duì)字符串”廈門“進(jìn)行json_encode后,輸出的是"\u53a6\u95e8"。

查詢了一下,有兩種方法:

1.將"\u53a6\u95e8"還原成“廈門”,使用如下的代碼:$str= preg_replace("#\\\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", $str);

2.先將中文字段urlencode,json_encode后,再用urldecode,也可以顯示中文。$code = urldecode(json_encode(urlencode("廈門")));

PHP5.4版本,已經(jīng)給Json新增了一個(gè)選項(xiàng): JSON_UNESCAPED_UNICODE。加上這個(gè)選項(xiàng)后,就不會(huì)自動(dòng)把中文編碼了。echo json_encode("廈門", JSON_UNESCAPED_UNICODE);

另,由于 json_encode 和 json_decode只支持utf-8編碼的字符,GBK的字符要用json就得轉(zhuǎn)換一下,附自己寫的GBK轉(zhuǎn)UTF-8的代碼:/*

字符串GBK轉(zhuǎn)碼為UTF-8,數(shù)字轉(zhuǎn)換為數(shù)字。

*/

function ct2($s){

if(is_numeric($s)) {

return intval($s);

} else {

return iconv("GBK","UTF-8",$s);

}

}

/*

批量處理gbk->utf-8

*/

function icon_to_utf8($s) {

if(is_array($s)) {

foreach($s as $key => $val) {

$s[$key] = icon_to_utf8($val);

}

} else {

$s = ct2($s);

}

return $s;

}

echo json_encode(icon_to_utf8("廈門"));

相關(guān)推薦:

總結(jié)

以上是生活随笔為你收集整理的php显示json,PHP解决JSON中文显示问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。