2011-05-16 85 views
3

我有Unicode字符JSON文件,我无法解析它。我试过在Flash CS5中,JSON库,我试过它在http://json.parser.online.fr/,我总是得到“意想不到的令牌 - 评估失败”Json的Unicode字符解析

对不起,真的有一个语法问题,它来了这种方式来自客户端。

有人可以帮我吗?由于

+0

你确定这是一个unicode问题,而不是json数据本身的问题吗? (语法错误,不完整的文件...) – Jem 2011-05-16 15:15:28

回答

4

Quoth the RFC:

JSON内容应以Unicode编码。默认的编码是UTF-8。

因此,一个正确编码Unicode字符不应该是一个问题。这使我相信,它的正确编码(也许它使用的Latin-1,而不是UTF-8)。你是如何创建该文件的?在文本编辑器中?

1

在asp.net你可能会认为你会使用System.Text.Encoding字符串转换,如“保\提供上门”回像“字符串保罗的”,但我想了好几个小时,并没有发现任何工作。

麻烦是硬编码一个字符串,如上所示已经解码字符串,你会看到如果你把一个断点,所以最后我写了一个函数,将Hex27转换为Dec39,这样我结束了HTML编码并解码。

string Padding = "000"; 
       for (int f = 1; f <= 256; f++) 
       { 
        string Hex = "\\u" + Padding.Substring(0, 4 - f.ToString().Length) + f; 
        string Dec = "&#" + Int32.Parse(f.ToString(), NumberStyles.HexNumber) + ";"; 
        HTML = HTML.Replace(Hex, Dec); 
       } 
       HTML = System.Web.HttpUtility.HtmlDecode(HTML); 

其丑无比,我知道,但不使用最新的框架(不ISP的服务器上),这是最好的,我可以做的,必须有人知道一个更好的解决方案。

0

我有同样的问题,我只是更改文件编码类型的Mac罗马/ Windows的1252 UTF-8 ..和它的工作

0

我曾与Twitter的JSON文件同样的问题。我用json.loads(tweet)在Python中解析它们,但是它的一半记录失败了。

我改成了Python3,现在效果很好。