gpt4 book ai didi

java - 从 Java 网页读取 HTML 源代码时,某些字符无法正确显示

转载 作者:行者123 更新时间:2023-12-01 09:32:54 26 4
gpt4 key购买 nike

我会让这个问题简短而有趣。我有一个函数,它将 URL 读取为字符串并返回网页的 HTML 源字符串。这是:

public static String getHTML(String urlToRead) throws Exception // Returns the source code of a given URL.
{
StringBuilder result = new StringBuilder();
URL url = new URL(urlToRead);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setRequestMethod("GET");
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");

BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream(), Charset.forName("UTF-8")));
String line;

while ((line = rd.readLine()) != null)
{
result.append(line + System.getProperty("line.separator"));
}

rd.close();

result.toString();
}

除了一个小小的怪癖之外,它就像一种魅力。 InputStreamReader 无法正确读取某些字符。 “ł”字符未正确读取,而是被“?”替换。这是迄今为止我发现的唯一遵循这种行为的字符,但不知道还有哪些其他字符没有被正确读取。

这似乎是字符集的问题。正如您从代码中看到的那样,我使用的是 UTF-8。我尝试在其位置上使用的所有其他字符集要么完全不起作用,要么在处理多个字符时遇到问题。

什么样的事情可能导致此问题?任何帮助将不胜感激!

最佳答案

你尝试过吗:

conn.setRequestProperty("content-type", "text/plain; charset=utf-8");

关于java - 从 Java 网页读取 HTML 源代码时,某些字符无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39252404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com