Java 网络请求中文乱码解决方法
Java 中网络请求返回数据中存在中文乱码的问题,通常有两种情况:
- 请求时未指定字符编码:在发送网络请求时,未指定正确的字符编码,导致返回的数据无法正确解码。可以在发送请求时,通过设置请求头或参数指定正确的字符编码。 例如:
URL url = new URL('http://example.com');
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty('Accept-Charset', 'UTF-8');
- 数据本身编码有问题:有时候返回的数据本身就存在编码问题,可能是服务器端返回的数据编码不正确,或者数据在传输过程中被篡改。这种情况下,可以尝试对返回的数据进行重新编码。 例如:
InputStream in = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in, 'UTF-8'));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
String responseData = new String(response.toString().getBytes('ISO-8859-1'), 'UTF-8');
对于以上两种情况,可以根据具体的情况进行调整和处理,以解决中文乱码的问题。
原文地址: https://www.cveoy.top/t/topic/qt1B 著作权归作者所有。请勿转载和采集!