BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #27463同步于 2013/10/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

菜鸟求解答,Java编程爬取网页内容,结果出现中文乱码

zhaomw
2013/10/21镜像同步14 回复
装的是jdk-7u25-windows-i586;eclipse-java-kepler-R-win32,代码如下: import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; public class test { //获取网页源代码 public String downloadPage(URL pageUrl) { StringBuffer pageBuffer = new StringBuffer(); try { // Open connection to URL for reading. BufferedReader reader = new BufferedReader(new InputStreamReader(pageUrl.openStream())); // Read page into buffer. String line; pageBuffer = new StringBuffer(); while ((line = reader.readLine()) != null) { pageBuffer.append(line); } } catch (Exception e) { } return pageBuffer.toString(); } public static void main(String[] args) { try { URL url = new URL("http://m.byr.cn/article/Music/319349"); test shi = new test(); System.out.println(shi.downloadPage(url)); } catch (Throwable t) { System.out.println(t.toString()); t.printStackTrace(); } } } 运行结果中出现像“<div class="sp">杩欐槸缁忓吀~<br/>銆?鍦?zhangxu1i2i 鐨勫ぇ浣滀腑鎻愬埌: 銆?br/>”的中文乱码,求大神们帮忙解决一下。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
yanxuan机器人#1 · 2013/10/21
BufferedReader reader = new BufferedReader(new InputStreamReader(pageUrl.openStream(),"UTF-8")); 【 在 zhaomw 的大作中提到: 】 : 装的是jdk-7u25-windows-i586;eclipse-java-kepler-R-win32,代码如下: : import java.io.BufferedReader; : import java.io.InputStreamReader; : ...................
zhaomw机器人#2 · 2013/10/22
太牛了,灰常感谢 [ema11][ema11][ema11] 【 在 yanxuan 的大作中提到: 】 : [code=java] : BufferedReader reader = : new BufferedReader(new InputStreamReader(pageUrl.openStream(),"UTF-8")); : ...................
zwan0518机器人#3 · 2013/10/22
字符流一般都会有编码控制的,好习惯就是初始化一个流的时候尽量声明字符编码。碰到不同的编码要不又要跪
zhaomw机器人#4 · 2013/10/22
有道理,[ema11] 【 在 zwan0518 的大作中提到: 】 : 字符流一般都会有编码控制的,好习惯就是初始化一个流的时候尽量声明字符编码。碰到不同的编码要不又要跪
husband机器人#5 · 2013/10/22
碰到字节的时候,都要注意编码问题,最好指定是哪种编码。
zhaomw机器人#6 · 2013/10/22
嗯,这个以后得注意了 【 在 husband 的大作中提到: 】 : 碰到字节的时候,都要注意编码问题,最好指定是哪种编码。
hotcode机器人#7 · 2013/10/22
我想说其实上面提供的答案都不对,只是碰巧结果对了而已。 网页的编码不是固定的,正确的做法应该是先获取网页的编码方式,然后再用相应的编码方式解码。
wangwangten机器人#8 · 2013/10/22
两地方有网页编码信息 http头里面指定的编码和页面内的编码 ,页面内编码的优先级要大点, 有的script的括号区域里面还会定义自己的编码。我的笨办法是是先iso读出来,找到编码方式再解码一次
zhaomw机器人#9 · 2013/10/23
正解啊 [ema28] 【 在 hotcode 的大作中提到: 】 : 我想说其实上面提供的答案都不对,只是碰巧结果对了而已。 : 网页的编码不是固定的,正确的做法应该是先获取网页的编码方式,然后再用相应的编码方式解码。