问题描述
privatefinalstaticStringCRLF=System.getProperty("line.separator");URLur=newURL(“http://news.xinhuanet.com/theory/2011-03/01/c_121133526.htm”);InputStreaminstr=ur.openStream();InputStreamReaderisr=newInputStreamReader(instr,utf);BufferedReaderin=newBufferedReader(isr);while((titleContent=in.readLine())!=null){sb.append(titleContent+CRLF);}具体测试代码(可以试一下)importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.FileWriter;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.net.MalformedURLException;importjava.net.URL;/***基本能实现网页抓取,不过要手动输入URL将整个html内容保存到指定文件**@authorchenguoyong**/publicclassScrubSelectedWeb{privatefinalstaticStringCRLF=System.getProperty("line.separator");/***@paramargs*/publicstaticvoidmain(String[]args){try{URLur=newURL("http://news.xinhuanet.com/theory/2011-03/01/c_121133526.htm");InputStreaminstr=ur.openStream();Strings,str;BufferedReaderin=newBufferedReader(newInputStreamReader(instr));StringBuffersb=newStringBuffer();BufferedWriterout=newBufferedWriter(newFileWriter("D:/outPut.txt"));while((s=in.readLine())!=null){sb.append(s+CRLF);}System.out.println(sb);str=newString(sb);out.write(str);out.close();in.close();}catch(MalformedURLExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}}汉字什么的都没问题问题就是文章内容里面第一个<p>//3个空格变成???==<p>????内容页面显示<fontid="Zoom"><!--begin_ct--><p>????1954年,毛主席会见英国工党领袖、前首相艾德礼时,身穿的是一条屁股上扎满了罗纹补丁、膝盖等处磨得发白的裤子。他经常说的一句话是“外宾要见我毛泽东,还是要看我穿的啥?”通过毛主席的“补丁裤”,我们能够深深体会到毛主席在外交接待中一贯保持的艰苦朴素的作风和务实实效的精神。这也为我们的公务接待定了一个很好的“标准”。然而,现在的一些公务接待过分注重高档次、高规格、高消费。这不仅有违毛主席的接待“标准”,还助长了党政机关的奢靡、铺张和攀比之风,推高了行政成本,挤占了公共资金,还给一些人提供了贪腐机会,更重要的是会恶化了干群关系,使群众对政府产生信任危机。</p><p>????“一个月仅吃喝就花约206万元”、“一次政府接待午餐花费三万多元”、“两天两夜的行程消费不下十万元”……岁末年初,从江苏的海门到广东的汕尾和东莞,皆因天价的接待费用而深陷“接待门”。天价接待花的是百姓的血汗钱,破坏的是政府在人民群众心中的形象。天价接待的不正之风是与毛主席的艰苦朴素的作风是背道而驰的。艰苦朴素是我党的优良传统,现在尽管经济发展了、生活富裕了,但是仍然要保持这一优良传统。在公务接待中,应该继续保持这一传统,切忌奢靡、铺张和攀比。</p><p>????公务接待要务实实效。公务接待就是为接待上级领导检查或指导工作以及其他单位来交流学习。然而我们现在一些公务接待变了味道,公务接待就是陪对方吃、喝、玩、乐的参观旅游。海门市审计局进行一次公务接待,对方两天两夜行程,此局出动了24名公务人员陪同15位来客,然而工作交流时间不到4小时。他们交流的并不是信息与经验,而是某些人的私人感情;推杯换盏之时,连接起的并不是部门之间、地方之间的合作纽带,而是一些私人利益链。这不得不令人深思啊。我们的公务接待难道真是为了工作吗?还是为了某些人的私人利益?毛主席倡导我们要务实实效,就是要杜绝这种不正之风。公务接待就是为了工作,不是为了让对方来看你的“锦绣花衣”。只有把工作落到实处,把工作做好,“破裤子”又何妨。(华枝春满)</p><!--end_ct--></font>说乱码吧中文没有问题只能说是没有识别出空格,又试了trim &qout;都不行别的网站没有问题只有新华网网上查不到求救大家了
解决方案
解决方案二:
最最可气的是新华网上有的文章也是空格但是不是这样下面正常读出来,没有显示“问好"<p “佛学院开始招生了吧?”热心指路后,车夫范师傅跟其他车夫们,聊起了这个他们讨论了几年的“老话题”。</p><p> 之所以说是老话题,是因为这个建在龙潭河风景区的佛学院,2005年就已通过国家宗教局批准开始筹建。</p><p> 学院学制为全日制四年本科,面向佛教界和社会招生。学院占地面积约37平方公里,包括了龙潭河风景区,称得上是世界最大佛学院。</p><p> <strong>报考火热,“失约率”挺高</strong></p><p> 2009年4月6日,河南佛教学院公布了2009年招生简章。此后,各地僧人及社会人士陆续报名。</p><p> 由于学校一期工程未完工,直到今年年初,学院才开始招收第一批学员。</p><p> 因招生简章发布已太久,2月25日考试当天,报名的300多人中,只有25人参加了考试。</p><p> 考试期间,不断有考生从全国各地陆续赶来。他们中,除了僧人,还有在职干部、大学生等。</p><p> 考试时,考生可带手机进场。监考老师只说了一句话:大家都有志于做僧侣,如果连考试都作弊,那就别修行了,耽误自己。</p><p> 考试内容包括佛教知识、语文、外语和面试。</p><p> 生活只有青灯伴古佛?No!</p><p> 在这里上学,不仅免收学杂费,每月有补助、有奖学金,而且食宿费全免。</p><p> 同时,与大学生就业难相反,河南佛教学院刚招生,已有全国各地的寺庙来联系接收毕业生了。</p><p> 学员和僧人一样,每天5点起床,5点半开始做早课,7点用早斋,8点半学习,12点午斋,14点学习,16点半晚课,17点半晚斋,22点熄灯。</p><p> 如果你认为他们就是过着青灯伴古佛的生活,那你就错了。学院不但讲授佛学,还将开设佛教音乐、雕塑、外语等课程。此外,还安排有武术、茶道等。未来,学院还将规划短期禅修班。河南商报记者王棣文/图</p><!--end_ct-->
解决方案三:
最可气的是新华网上有的文章空格不是???也是和上面一样读出来的,<p>后面正常显示出来了不知道是我代码的问题,还是别的问题,要读都不行还好,现在是有的行有的不行就无语了<p> “佛学院开始招生了吧?”热心指路后,车夫范师傅跟其他车夫们,聊起了这个他们讨论了几年的“老话题”。</p><p> 之所以说是老话题,是因为这个建在龙潭河风景区的佛学院,2005年就已通过国家宗教局批准开始筹建。</p>
解决方案四:
有人帮组我吗?
解决方案五:
content=newString(content.getBytes(),"gb2312").replace('?','').replace(' ','');你的代码一句加上这个就行了,那哥们完全正确
解决方案六:
既然?替换不掉那就应该是编码的问题了
解决方案七:
他们的网页虽然可能是utf8编码的,但是这段文字有可能是用gb2312等中文编码存储的,所以用单纯的utf-8去读会有问题,这是我的猜测呵呵
解决方案八:
没办法你打开网页源码会发现空格变成?是 造成的 在网页上显示没问题可是你提取文本信息是就有问题了只有将???替换成空格了
解决方案九:
先打印到控制台看看有没有乱!将读取的方法改造一下,就可以了URLur=newURL("http://news.xinhuanet.com/theory/2011-03/01/c_121133526.htm");HttpURLConnectionhttp=http=(HttpURLConnection)ur.openConnection();InputStreamreader=conn.getInputStream();BufferedReaderhttpBufferedReader=newBufferedReader(newInputStreamReader(reader,"UTF-8"));ObjectcurrentLine=null;StringBuffertotalstring=newStringBuffer();while((currentLine=httpBufferedReader.readLine())!=null){totalstring.append(currentLine);}System.out.println(totalstring);
网页是UTF-8编码,亲测,没有乱码
解决方案十:
刚才有点问题,这样!URLur=newURL("http://news.xinhuanet.com/theory/2011-03/01/c_121133526.htm");HttpURLConnectionhttp=(HttpURLConnection)ur.openConnection();InputStreamreader=http.getInputStream();BufferedReaderhttpBufferedReader=newBufferedReader(newInputStreamReader(reader,"UTF-8"));ObjectcurrentLine=null;StringBuffertotalstring=newStringBuffer();while((currentLine=httpBufferedReader.readLine())!=null){totalstring.append(currentLine);}System.out.println(totalstring);
解决方案十一:
引用9楼fulong258的回复:
刚才有点问题,这样!JavacodeURLur=newURL("http://news.xinhuanet.com/theory/2011-03/01/c_121133526.htm");HttpURLConnectionhttp=(HttpURLConnection)ur.openConnection();InputStreamreader=http.g……
同意,???一般是编码的问题。转码后看看效果。调试的时候可以先不用保存到文件。在控制台输出看看结果如何。
解决方案十二:
在那边帖子里面回复你了