json字符编码问题

问题描述:

当我将数组编码为JSON时,我得到“u00e1”而不是á。json字符编码问题

我该如何解决字符编码问题?

谢谢

+0

你如何编码您的数组,你如何处理该编码的阵列? – Gumbo 2010-03-12 18:50:28

+0

您可能想要添加您正在使用的语言(PHP/Python/ASP/...)以及输入来自何处(数据库/ HTTP提交的表单/ ...) – janmoesen 2010-03-12 19:36:57

浏览器的默认编码大概是Unicode UTF-8。试试 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

您的输入数据不是Unicode。 0xE1是传统的latin1/ISO-8859 - */Windows-1252。 \ u00e1是对其进行编码的JSON/JavaScript。 JSON 必须使用Unicode编码。

解决它通过修复您的输入或使用像iconv转换它。

如果仅检查响应(响应仅为文本,但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”