[问题] 关于 UTF-8 编码转换问题

楼主: CMiles (最难学会的事)   2015-07-06 21:04:45
我需要呼叫一个 RESTful API 来取得 JSON 格式资料,
资料为中文,编码为 UTF-8,目前使用 HttpURLConnection 来处理。
但碰到一个问题,所取得的资料编码为 UTF-8 没错,并不是乱码,
不过所看到的资料都呈现 \u65e5\u85e5\u672c\u8216 之类的格式,
看的到 UTF-8 的编码方式,却无法转成中文,
不知道有没有人知道如何处理?
或是有没有比 HttpURLConnection 更好用的 package?
先感谢大家帮忙 <(_ _)>
程式码如下:
String url = "http://xxx/xxx"; // RESTful API 网址
HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
con.setRequestProperty("Accept", "application/json;charset=UTF-8");
con.connect();
OutputStream out = con.getOutputStream();
out.write(parameters().getBytes()); // 传递某些参数过去
out.close();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream(), "UTF-8"));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
con.disconnect();
作者: ssccg (23)   2015-07-06 21:53:00
就去找个可处理\uXXXX的library或是自己写例如apache的StringEscapeUtils会拿到\uXXXX就是资料本来就长这样,跟URLConnection没关系
楼主: CMiles (最难学会的事)   2015-07-06 23:55:00
感谢,我去找找 StringEscapeUtils
作者: haha02 (来人!上夹棍!)   2015-07-07 01:24:00
不想加新的lib的话可以用Properties的load()方法 把读进来的json先组成一个property的string再用StringReader读但是有一些不能用的字符的话要自己做property的escape
楼主: CMiles (最难学会的事)   2015-07-07 10:15:00
感谢,我两种方法都来查查看!!!
作者: JustinHere (良葛格)   2015-07-07 20:29:00
楼主: CMiles (最难学会的事)   2015-07-08 11:14:00
成功了,感谢楼上各位

Links booklink

Contact Us: admin [ a t ] ucptt.com