2011-05-16 82 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,現在效果很好。