php獲取json亂碼(php出現亂碼)

  • 1、PHP中json_encode中文亂碼問題
  • 2、關於php後台獲取前台post過來的json數據中文亂碼的問題~
  • 3、我用php輸出json 中文顯示亂碼,請大俠幫忙解決一下
  • 4、php生成json數據為亂碼的幾種處理方法
  • 5、PHP中,從伺服器端接收到的json字元串前端有亂碼如何解決

php 中使用 json_encode() 內置函數(php 5.2)可以使用得 php 中數據可以與其它語言很好的傳遞並且使用它。這個函數的功能是將數值轉換成json數據存儲格式

$arr = array (‘a’=1,’b’=2,’c’=3,’d’=4,’e’=5);

echo json_encode($arr);

//結果

//{“a”:1,”b”:2,”c”:3,”d”:4,”e”:5}

/*

下面看一款json_encode中文亂碼問題

解決方法是用urlencode()函數處理以下,在json_encode之前,把所有數組內所有內容都用urlencode()處理一下,然用json_encode()轉換成json字元串,最後再用urldecode()將編碼過的中文轉回來

*/

function arrayrecursive($array, $function, $apply_to_keys_also = false)

{

static $recursive_counter = 0;

if (++$recursive_counter 1000) {

die(‘possible deep recursion attack’);

}

foreach ($array as $key = $value) {

if (is_array($value)) {

arrayrecursive($array[$key], $function, $apply_to_keys_also);

} else {

$array[$key] = $function($value);

}

if ($apply_to_keys_also is_string($key)) {

$new_key = $function($key);

if ($new_key != $key) {

$array[$new_key] = $array[$key];

unset($array[$key]);

}

}

}

$recursive_counter–;

}

/**************************************************************

*

* 將數組轉換為json字元串(兼容中文)

* @param array $array 要轉換的數組

* @return string 轉換得到的json字元串

* @access public

*

*************************************************************/

function json($array) {

arrayrecursive($array, ‘urlencode’, true);

$json = json_encode($array);

return urldecode($json);

}

$array = array

(

‘name’=’希亞’,

‘age’=20

);

echo json($array);

//應用實例

$servname=”localhost”;

$sqlservname=”root”;

$sqlservpws=”123456″;

$sqlname=”lock1″;

$db=mysql教程_connect($servname,$sqlservname,$sqlservpws) or die(“資料庫教程連接失敗”);

mysql_select_db($sqlname,$db);

$sql = “select * from t_operater”;

$result =mysql_query($sql);

$rows = mysql_num_rows($result);

while($obj = mysql_fetch_object($result))

{

$arr[] = $obj;

}

echo ‘({“total”:”‘.$rows.'”,”results”:’.json_encode($arr).’})’;

header不設置都可以,但是feedback.php文件編碼格式要改成utf8的,注意:是文件的編碼格式

用json_decode()方法可以把這些代碼還原為php格式,然後輸出就可以看到中文了

如下:

$js_str = 你所謂的亂碼;

$arr = json_deconde ($js_str);

print_r($arr);

亂碼指的是計算機系統不能顯示正確的字元,而顯示其他無意義的字元或空白,如一堆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、宋體、宋體、宋體、宋體、宋體、宋體」。重新啟動系統後漢字就應該顯示正確了。建議您在修改前先備份註冊表,以防修改錯誤使系統出現問題。

?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 字元到絕對位置使用範例?

原創文章,作者:X2OCM,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126509.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
X2OCM的頭像X2OCM
上一篇 2024-10-03 23:08
下一篇 2024-10-03 23:08

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python zipfile解壓文件亂碼處理

    本文主要介紹如何在Python中使用zipfile進行文件解壓的處理,同時詳細討論在解壓文件時可能出現的亂碼問題的各種解決辦法。 一、zipfile解壓文件亂碼問題的根本原因 在P…

    編程 2025-04-29
  • Python爬蟲亂碼問題

    在網路爬蟲中,經常會遇到中文亂碼問題。雖然Python自帶了編碼轉換功能,但有時候會出現一些比較奇怪的情況。本文章將從多個方面對Python爬蟲亂碼問題進行詳細的闡述,並給出對應的…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • JSON的MD5

    在Web開發過程中,JSON(JavaScript Object Notation)是最常用的數據格式之一。MD5(Message-Digest Algorithm 5)是一種常用…

    編程 2025-04-29
  • 使用Java將JSON寫入HDFS

    本篇文章將從以下幾個方面詳細闡述Java將JSON寫入HDFS的方法: 一、HDFS簡介 首先,先來了解一下Hadoop分散式文件系統(HDFS)。HDFS是一個可擴展性高的分散式…

    編程 2025-04-29
  • Python3亂碼轉中文

    本文將詳細介紹如何轉換Python3中的亂碼為中文字元,幫助Python3開發工程師更好的處理中文字元的問題。 一、Python3中文亂碼的原因 在Python3中,中文字元使用的…

    編程 2025-04-29
  • Win10的Powershell亂碼問題

    在Windows 10系統中,Powershell作為一種廣泛應用的命令行工具,被越來越多的人所熟知和使用,但是有時候會出現亂碼的情況,讓人十分困擾。本文將從多方面進行詳細闡述,幫…

    編程 2025-04-28
  • Axios請求數據亂碼問題解決

    本文將從以下三個方面詳細闡述Axios請求數據亂碼問題的原因和解決方法: 一、設置請求頭 Axios請求數據亂碼的原因可能是因為請求時沒有設置請求頭的編碼方式,而且默認的編碼方式是…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28

發表回復

登錄後才能評論