Java http get网络请求返回字符串结果中文乱码
在Java中,如果你使用HttpClient库发送HTTP GET请求并获取响应的字符串结果,可能会遇到中文乱码的问题。这是因为默认情况下,HttpClient库会使用ISO-8859-1字符集来解码响应内容,而不是UTF-8字符集。
要解决这个问题,可以在创建HttpClient实例时,设置字符集为UTF-8,如下所示:
CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultRequestConfig(RequestConfig.custom()
.setCookieSpec(CookieSpecs.STANDARD).build())
.setDefaultHeaders(defaultHeaders)
.setDefaultCookieStore(cookieStore)
.setDefaultCharset(StandardCharsets.UTF_8) // 设置字符集为UTF-8
.build();
这样,HttpClient库将会使用UTF-8字符集来解码响应内容,从而避免中文乱码问题。
如果你使用URLConnection类发送HTTP GET请求,可以通过设置URLConnection的setRequestProperty方法来指定字符集为UTF-8,如下所示:
URL url = new URL("http://example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept-Charset", "UTF-8"); // 设置字符集为UTF-8
这样,URLConnection将会使用UTF-8字符集来解码响应内容,从而避免中文乱码问题
原文地址: https://www.cveoy.top/t/topic/iNTz 著作权归作者所有。请勿转载和采集!