我正在解析來自Facebook的輸入流。我使用的是類似在輸入流中解碼 u0000 Unicode的更優雅的方式
BufferedReader in =
new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
然後in.readLine
實際上從流中讀取。
該流似乎已經使用ASCII編碼的Unicode字符,因此我會看到諸如\ u00e4(其實是兩個離散的ASCII字符)。現在,我正在捕捉「\ u」並解碼後面的兩個十六進制字節,將它們轉換爲char並用它們替換字符串,這顯然是最糟糕的方式。
我確定有一種很酷的方式來使用本地函數來解碼特殊字符,因爲正在讀取流(我希望它可以在InputStreamReader圖層上完成)。但是如何?
你要解析哪個URL,以便我們看到/驗證你的輸入?這是JSON,有機會嗎? – Thanatos 2010-07-09 04:53:23
這是Facebook的愚蠢的新系統與他們的圖形API。看起來像這樣: {「data」:[{「name」:「Thanatos」,「id」:「1234」},{「name」:「Max \ u00e4」,「id」:「5678」 }]} – EboMike 2010-07-09 05:54:13
@Thanatos:是的,它是,順便說一句。 JSON的解析器可以正確處理它。我吮吸。 – EboMike 2010-10-19 04:43:33