PHP Json函式不能處理中文的解決辦法

2022-09-08 10:03:11 字數 1087 閱讀 3288

php5.2 新增的 json 功能是非常受歡迎的,但是經過測試發現,json_encode

對中文的處理是有問題的:

不能處理gb編碼,所有的gb編碼都會替換成空字元;

utf8編碼的中文被編碼成unicode編碼,相當於j**ascript的escape函式

處理的結果。

為了能正確使用json,首先我們就應該在編碼上採用utf8編碼,然後再對

json_encode的返回結果稍加處理就可以得到正確的結果了。

​1. [**]php**    

<?php

/*php5.2 新增的 json 功能是非常受歡迎的,但是經過測試發現,json_encode

對中文的處理是有問題的:

不能處理gb編碼,所有的gb編碼都會替換成空字元;

utf8編碼的中文被編碼成unicode編碼,相當於j**ascript的escape函式

處理的結果。

為了能正確使用json,首先我們就應該在編碼上採用utf8編碼,然後再對

json_encode的返回結果稍加處理就可以得到正確的結果了。

有乙個簡單的類,將這兩個函式包裝了一下:*/

class json

public static function decode($str)

}/*    使用的時候

json::encode($code);

json::decode($code);

這樣可以正確處理utf8編碼的中文了。

ps:對於gb編碼的中文,我們可以在編碼時先轉成utf8編碼,再進行編碼

,解碼的時候再進行乙個utf8 -> gb的轉換就可以了。

另外一般json_encode的結果我們是返回到客戶端來使用,我們其實還可

以用j**ascript的unescape函式來對unicode編碼的中文進行解碼,從而還原

成正確的中文。

或者用:

$title = mb_convert_encoding($title, 'html-entities', $this-

>_outcharset);*/

//任意編碼下都正常顯示

?>

php json資料處理中文編碼

function notice ie iconv ucs 2be utf 8 pack h4 1 str windows return preg replace u 0 9a f ie iconv ucs 2le utf 8 pack h4 1 str 另外從網上搜尋到的其他方法 json 生成,分...

php json資料保留原樣中文

php轉換json時,其中的中文會轉換成unicode,要保持原來中文的意思 將陣列裡面帶有中文的字串保留以json格式返回 param array arr 陣列 return string json格式的字串 function tojson arr 將陣列裡面帶有中文的字串用urlencode轉換...

PHP JSON中文亂碼解決方法大全

為什麼php與json互動時會出現中文亂碼?由於json與js一樣,對於客戶端的字元是以utf8的形式處理,即json提交或接受返回的字元是以utf8形式處理,當與php互動時,如果資料庫編碼 php頁面編碼不採用utf8格式時,php與json互動時中文就會產生亂碼。解決php json中文亂碼的...