Json使用unicode字符进行解析

时间:2011-05-16 15:04:17

标签: json unicode

我有一个带有unicode字符的json文件,我无法解析它。我试过Flash CS5,JSON库,我在http://json.parser.online.fr/尝试过,我总是得到“意外令牌 - eval失败”

对不起,语法确实存在问题,它来自客户端。

有人可以帮帮我吗?感谢

6 个答案:

答案 0 :(得分:5)

Quoth the RFC:

  

JSON文本应以Unicode编码。默认编码为UTF-8。

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

答案 1 :(得分:3)

字符串中可能隐藏着一个模糊的Unicode空白字符。

此网址包含更多详细信息:

http://timelessrepo.com/json-isnt-a-javascript-subset

答案 2 :(得分:1)

在asp.net中你会认为你会使用System.Text.Encoding将像“Paul \ u0027s”这样的字符串转换回像“Paul's”这样的字符串,但是我试了好几个小时,发现没什么用。

麻烦是对字符串进行硬编码,如上所示,已经对字符串进行了解码,如果你在它上面设置了一个断点,那么最后我写了一个函数将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的服务器上),这是我能做的最好的,有人必须知道更好的解决方案。

答案 3 :(得分:0)

我遇到了同样的问题,我只是将文件编码类型Mac-Roman / windows-1252更改为UTF-8 ..并且它有效

答案 4 :(得分:0)

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

我改为Python3,现在效果很好。

答案 5 :(得分:0)

如果您似乎在编写JSON文件时遇到问题(例如\u00fc等转义代码无法正确显示,无论编辑器的编码设置如何)由Python生成json.dump {{ 3}} ():它默认编码ASCII并转义unicode字符!请参阅s(以及python json unicode - how do I eval using javascriptpython: json.dumps can't handle utf-8?)。