如何使用JAVA在HTTP GET中设置utf

时间:2015-08-30 16:09:34

标签: java json string utf-8 json-deserialization

我在Get请求的响应中收到特殊字符“ñ”或“á,é”等。代码是下一个:

HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept", "application/json");
BufferedReader b_r = new BufferedReader(new InputStreamReader((connection.getInputStream())));
String data = b_r.readLine();

如何设置utf-8才能收到正确的字符?

1 个答案:

答案 0 :(得分:5)

理想情况下,根本不使用此代码 - 使用接受InputStream的JSON解析器,而不是逐行读取。

如果需要,请指定UTF-8作为InputStreamReader的编码,因为您目前只使用平台默认编码:

BufferedReader b_r = new BufferedReader(
    new InputStreamReader((connection.getInputStream(), StandardCharsets.UTF_8)));

这假设它真的 UTF-8 - 它应该是,如果它是JSON。 (如果服务器不发送发送UTF-8,您应该尝试修复它。)