我是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内容。
任何有助于帮助的人!
答案 0 :(得分:0)
转储:
String encoding = conn.getContentEncoding();
如果不为null,您可以将其用于读者。
并转储可能的异常。