在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字符集来解码响应内容,从而避免中文乱码问题

Java http get网络请求返回字符串结果中文乱码

原文地址: https://www.cveoy.top/t/topic/iNTz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录