phpjsonencode亂碼
① php在將數組轉成json的時候,key值是中文的,亂碼怎麼解決!
亂宴大源碼的話是因為文件的格式不正確,而網頁編碼是默認為文件編碼格式的,JSON又是UTF-8編碼,所以你的文件可能是GB2312格式仿辯,所以導致JSON內的中文亂碼。
這種情況轉換晌態為UTF-8格式就可以了。
(注意,轉換成無BOM格式的,記事本轉換的UTF-8是帶BOM的,會導致JSON無法正確解析)
② php json 輸出中文亂碼的問題怎麼處理啊,謝謝
header("Content-Type:text/html;charset=UTF-8");
$arr=array('1','2','三');
echo$arr['2']."<br/>";
print_r($arr);
echo"<br/>";
print_r(json_encode($arr));
echo"<br/>";
print_r(json_decode(json_encode($arr)));
輸出json數據會有但是翻譯成數組後就行了
③ PHP JSON_ENCODE使用後中文變成百分號亂碼了
看到這幅握哪圖會了判行嗎?呵呵段沖碼也是utf-8編碼
④ PHP從Mysql查出來的數據轉換成json格式中文亂碼怎麼解決
解決辦法是在使用json_encode之前把字元用函數urlencode()處理一下,然後再json_encode,輸出結果的時候在用函數urldecode()轉回來。具體如下:
//urlencode處理
functionjson_array($obj){
foreach($objas$key=>$value){
if(is_array($obj[$key])){
$obj[$key]=json_array($obj[$key]);
}else{
$obj[$key]=urlencode($value);
}
}
return$obj;
}
//urldecode解密轉換為中文字元
function_json($obj){
returnurldecode(json_encode(json_array($obj)));
}
echo_json($json);//$json為你要輸出的json數組
此處遞歸調用是為了處理多維數組······
⑤ php生成json數據為亂碼的幾種處理方法
亂碼指的是計算機系統不能顯示正確的字元,而顯示其他無意義的字元或空白,如一堆ASCII Code。所顯示出來的文字統稱為亂碼。亂碼是因為所使用的字元的源碼在本地計算機上使用了錯誤的顯示字型檔,或在本地計算機的字型檔中找不到相應於源碼所指代的字元所致哪孫旅。
通俗點講:
亂碼就是你打開王頁或郵箱,裡面的字不是全中文的,而是一些亂七八糟莫名其妙的無意義的字元組合在一起。主要是計算機的字型檔出錯所致。
1一般出現在網頁,用網頁上面的查看——編碼——簡體中文即可解決。
2 出現亂碼一般是Windows系統字型檔的問題,可能是系統錯誤或不正常關機造成的,也可能是某些軟體需要使用操作系統以外的字型檔造成的。解決辦法得看具體的問題,一般情況下的Windows亂碼可以通過以下三種方法解決。
第一種方法是下載 解決Windows XP SP2亂碼補丁 V1.00 (華軍軟體園)
第二種是解決Windows系統錯誤造成的亂碼問題,重啟後用F8鍵激活系統菜單,進入安全模式。等系統檢查完畢,硬碟沒有響應後再重新正常退出並重新啟動計算機,正常進入Windows,字體一般就能自動恢復。這是因為Windows在進入安全模式時會重新索引字型檔及整理菜單。
第三種解決方法用於修正軟體造成的注冊表中關於字體部分設置出錯的問題。運行「Regedit」啟動注冊表編輯器。在「HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\fontassoc」鍵下有 「Associated CharSet」和「Associated DefaultFonts」 兩個鍵。當出現漢字亂碼時,這兩個鍵中的內容就可能不正確甚至不完李凳整。它們的正確內容應該是「Associated CharSet」內有「(默認)、ANSI(00)、GB2312(86)、OEM(FF)、SYMBOL(02)」幾項串值,鍵值分別為「(未設置鍵值)、Yes、Yes、Yes、No」,而「Associated DefaultFonts」內有「(默認)、AssocSystemFont、FontPackegeDecorative、FontPackegeDontCare、FontPackegeModern、FontPackegeRoman、FontPackegeScript、FontPackegeSwiss」幾項串值,鍵值分別為「(未設置鍵值)、simsun.ttf、宋體、宋體、宋體、宋體、宋體、宋體」。重新啟動系統後漢字就應該顯示正確了。建議您在修改前先備份注冊表,以防修改錯誤使系統出現問題凱余。
⑥ php json_encode在轉碼時部分中文轉換失敗。
代碼是沒有問題的,建議你看看自己的代碼文件的編碼格式是否是UTF-8的格式
如何徹底排查,重新創建文件,不要創建文本文件然後修改後綴,建議你用編輯器創建,並且設置好你的編碼格態返者式,然後再打字,不要復制,復帆薯制之前的代碼,有可能還會存世明在問題。
我的推測:你的PHP文件這個代碼源文件存在編碼問題,建議重新新建一個,手打,勿復制。
建議使用好一點的IDE編輯器寫代碼,容易規避這些小問題
⑦ PHP中,從伺服器端接收到的json字元串前端有亂碼如何解決
<?phpclass Json{ public static function encode($str){ $code = json_encode($str); return preg_replace("#\\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\1'))", $code); } public static function decode($str){ return json_decode($str); }}?>用租舉上面的代碼可以解決在森雀存儲JSON生成的字串為亂碼的問題友情提示:參數為UTF-8編碼過的字串或在用UTF-8保存的程序中直接引用上面的兩個靜態方法附:php pack()函數說明pack壓縮資料到位字元串之中。語法: string pack(string format, mixed [args]...);返回值: 字元串(二進制)函數種類: 資料處理內容說明本函數用來將資料此型早壓縮打包到位的字元串之中。本函數和 Perl 的同名函數功能用法完全相同。參數 format 為壓縮的格式,見下表a 將字元串空白以 NULL 字元填滿A 將字元串空白以 SPACE 字元 (空格) 填滿h 十六進位字元串,低位在前H 十六進位字元串,高位在前c 有號字元C 無號字元s 有號短整數 (十六位,依計算機的位順序)S 無號短整數 (十六位,依計算機的位順序)n 無號短整數 (十六位, 高位在後的順序)v 無號短整數 (十六位, 低位在後的順序)i 有號整數 (依計算機的順序及范圍)I 無號整數 (依計算機的順序及范圍)l 有號長整數 (卅二位,依計算機的位順序)L 無號長整數 (卅二位,依計算機的位順序)N 無號短整數 (卅二位, 高位在後的順序)V 無號短整數 (卅二位, 低位在後的順序)f 單精確浮點數 (依計算機的范圍)d 倍精確浮點數 (依計算機的范圍)x 空位X 倒回一位@ 填入 NULL 字元到絕對位置使用範例<?>
⑧ PHP JSON亂碼問題
把資料庫編碼,網頁編碼,網頁顯示編碼,都改成一致的試試!
⑨ php創建json數組,到html輸出為null或亂碼的問題。
1、輸出為null 是因為沒有接受到值吧
2、輸出為亂碼是因為你php文件的編碼不對
⑩ php json decode 中文亂碼
呵呵,如果你查看一下手冊就知道了,json_encode()這個函數只能編碼utf-8的字元,就是說你給他傳入的參數只能是utf-8格式。所以捏,你在encode之前,需要將你的漢字編碼轉化為utf-8的格式,然後再encode,這樣就不會有問題了。