2010-03-12 126 views
0

當我將數組編碼爲JSON時,我得到「u00e1」而不是á。json字符編碼問題

我該如何解決字符編碼問題?

謝謝

+0

你如何編碼您的數組,你如何處理該編碼的陣列? – Gumbo 2010-03-12 18:50:28

+0

您可能想要添加您正在使用的語言(PHP/Python/ASP/...)以及輸入來自何處(數據庫/ HTTP提交的表單/ ...) – janmoesen 2010-03-12 19:36:57

回答

1

瀏覽器的默認編碼大概是Unicode UTF-8。試試 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

4

您的輸入數據不是Unicode。 0xE1是傳統的latin1/ISO-8859 - */Windows-1252。 \ u00e1是對其進行編碼的JSON/JavaScript。 JSON 必須使用Unicode編碼。

解決它通過修復您的輸入或使用像iconv轉換它。

0

如果僅檢查響應(響應僅爲文本,但JSON必須是對象),則可能存在一個問題。

您必須先將響應文本解析爲JavaScript對象(JavaScript中的JSON.parse),然後字符將變爲與服務器端相同。

實施例: 論PHP代碼的服務器:

$myString = "árvízrtűrő tükörfúrógép"; 
echo json_encode($myString); //this sends the encoded string via a protocol that maybe can handle only ascii characters, so the result on the client side is: 

在客戶端

alert(response); //check the text sent by the php 

輸出:「\ u00e1rv \ u00edzrt \ u0171r \ u0151噸\ u00fck \ u00f6rf \ u00far \ u00f3g \ u00e9p」

從respopnse做一個JS對象

parsedResponse = JSON.parse(response); 
alert(parsedResponse); 

輸出:「árvízrtűrőtükörfúrógép」