我有一个带有unicode字符的json文件,我无法解析它。我试过Flash CS5,JSON库,我在http://json.parser.online.fr/尝试过,我总是得到“意外令牌 - eval失败”
对不起,语法确实存在问题,它来自客户端。
有人可以帮帮我吗?感谢
答案 0 :(得分:5)
JSON文本应以Unicode编码。默认编码为UTF-8。
因此,正确编码的Unicode字符应该不是问题。这让我相信它不正确编码(也许它使用latin-1而不是UTF-8)。你是怎么创建这个文件的?在文本编辑器中?
答案 1 :(得分:3)
答案 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 javascript和python: json.dumps can't handle utf-8?)。