【发布时间】:2013-02-22 20:50:02
【问题描述】:
我是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循环”在这种情况下应该是什么样子的
while((line = reader.readLine()) != null)content = line.getBytes("UTF-8");
我的 Eclipse 说“局部变量内容可能尚未初始化”
第三:我应该如何将字节数组转换回字符串?
然后我读到this one。我什至没有尝试这篇文章中的方式,因为我正在尝试编写一个模拟浏览器获取和发布请求的函数。看来我发现了如何使用 URL 类执行它,所以我不想使用任何其他类和方法。
现在我唯一的问题是如何处理 utf-8 内容。
任何帮助!
【问题讨论】:
-
您对网站实际上提供 UTF-8 的确定性有多大?
-
处理 catch 异常。这是比 Stackoverflow 更直接的答案。如您所见,使用 getBytes 在这里是无稽之谈。
-
我正在解析我自己的网站!所以我绝对确定它的 utf-8