作者CMiles (最难学会的事)
看板java
标题[问题] 关於 UTF-8 编码转换问题
时间Mon Jul 6 21:04:45 2015
我需要呼叫一个 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();
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.248.119.171
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1436187889.A.443.html
1F:→ ssccg: 就去找个可处理\uXXXX的library或是自己写 07/06 21:53
2F:→ ssccg: 例如apache的StringEscapeUtils 07/06 21:57
3F:→ ssccg: 会拿到\uXXXX就是资料本来就长这样,跟URLConnection没关系 07/06 21:58
4F:→ CMiles: 感谢,我去找找 StringEscapeUtils 07/06 23:55
5F:推 haha02: 不想加新的lib的话可以用Properties的load()方法 把读进 07/07 01:24
6F:→ haha02: 来的json先组成一个property的string再用StringReader读 07/07 01:25
7F:→ haha02: 但是有一些不能用的字元的话要自己做property的escape 07/07 01:26
8F:→ CMiles: 感谢,我两种方法都来查查看!!! 07/07 10:15
9F:→ JustinHere: 日药本舖 07/07 20:29
11F:→ CMiles: 成功了,感谢楼上各位 07/08 11:14