gpt4 book ai didi

Java - 处理外来字符

转载 作者:行者123 更新时间:2023-12-01 13:48:38 26 4
gpt4 key购买 nike

所以,我有一些 Java 代码来获取 HTML 页面的内容,如下所示:

BufferedReader bf;
String response = "";
HttpURLConnection connection;
try
{
connection = (HttpURLConnection) url.openConnection();
connection.setInstanceFollowRedirects(false);
connection.setUseCaches(false);
connection.setRequestMethod("GET");
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.16 Safari/534.24");
connection.connect();
bf = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = bf.readLine()) != null) {
response += line;
}
connection.disconnect();
}
catch (Throwable ex)
{
response = "";
}

这工作得很好,并且会根据需要将内容返回给我。然后我深入到我想要提取的代码区域,如下所示:

10€ de réduction chez Asos be!

Java 似乎可以很好地处理 €,因为它是一个 HTML 实体。但“减少”这个词是有问题的。它似乎将其呈现为:

Asos 减价 10 欧元!

如您所见,它正在努力处理“é”字符。

我该如何解决这个问题?在过去的几个小时里,我一直在互联网上搜索并尝试代码,但没有任何运气!我对 Java 很陌生,所以很难理解。

提前致谢。

最佳答案

该代码没问题,但您可能需要检测响应的字符编码(请参阅 here )并将其传递给包装 inputStream 的类以获取 Reader (请参阅 here )。

否则问题不在于读取响应,而在于您对该响应字符串执行的操作。

关于Java - 处理外来字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20143882/

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