2013-05-31 41 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数据库。 –