2013-05-31 45 views
1

我有下面的代碼在我的程序:Java的轉換JSON字符串爲UTF-8串

BufferedReader br = new BufferedReader(new InputStreamReader(
     urlConnection.getInputStream())); 

Object obj = null; 

try { 
    obj = JSONValue.parse(br); 
} catch (Exception e) { 
    System.out.println(e); 
} 

response = obj.toString(); 

的問題是,它不是像轉換\ü...字符正常字符。例如我得到:

CAFFÉ代替CAFFÈ felicit \ u2021而不是FELICITA

我實際使用JSON-簡單的API:http://alex-public-doc.s3.amazonaws.com/json_simple-1.1/index.html

url連接是發送給我一個json文件的頁面。

有什麼建議嗎?

+2

你試過'new InputStreamReader(urlConnection.getInputStream(),「UTF-8」)'? – Keppil

+0

我試過你的解決方案,現在所有的\ u ....字符都轉換成「?」 –

+0

適合我。什麼是你的輸入字符串? – soulcheck

回答

4

您需要使用UTF字符集初始化輸入流閱讀器。這裏是你需要更新的:

BufferedReader br = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(),"UTF-8")); 
+0

我試過了,現在我正在全部「?」 chars而不是\ u ...字符 –

+1

您是否在控制檯上打印它?如果是,那麼FYI,控制檯將無法正確呈現您的utf-8輸出 –

+0

我不僅在控制檯上打印它們,而且還將它們寫入txt文件並正確設置爲上傳到具有utf-8字符集的mysql數據庫。 –