如何处理来自网站的utf-8内容

时间:2013-02-22 20:50:02

标签: java utf-8 web

我是java的新手,我陷入了这个功能:

public String getFromUrl(String url){
    String content = "";
    try{
        URL U = new URL(url);
        URLConnection conn = U.openConnection();
        conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729)");
        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
        String line;
        while((line = reader.readLine()) != null)content += line+"\r\n";
        reader.close();
    }
    catch(Exception e){}
    return content;
}

我总是得到问号而不是utf-8符号! 我做错了什么?

我读了这个post

首先:我不明白为什么使用字节数组?

第二:在这种情况下,“while loop”应该怎么样?如果我写的话

while((line = reader.readLine()) != null)content = line.getBytes("UTF-8");

我的日食说的是“本地变量内容可能尚未初始化”

第三:我应该如何将字节数组转换回字符串?

然后我读了this one。我甚至没有尝试过这篇文章,因为我正在尝试编写一个模拟浏览器获取和发布请求的函数。我似乎发现了如何使用URL类执行它,所以我不想使用任何其他类和方法。

现在唯一的问题是如何处理utf-8内容。

任何有助于帮助的人!

1 个答案:

答案 0 :(得分:0)

转储:

String encoding = conn.getContentEncoding();

如果不为null,您可以将其用于读者。

并转储可能的异常。