繁体   English   中英

Java-处理外来字符

[英]Java - handling foreign characters

因此,我有一些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实体。 不过,“减少”一词是有问题的。 似乎将其渲染为:

10欧元减价Asos!

如您所见,它很难处理“é”字符。

我该如何解决呢? 在过去的几个小时中,我一直在搜索Internet并使用该代码,但是没有运气! 我对Java还是很陌生,所以很难全神贯注。

提前致谢。

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

否则,问题不是读取响应,而是您使用该响应字符串所做的工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM