知识大全 [Java] 部分乱码问题

Posted

篇首语:今日长缨在手,何时缚住苍龙。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 [Java] 部分乱码问题相关的知识,希望对你有一定的参考价值。

[Java] 部分乱码问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  前些日子 QQ群里面的某个小朋友在学习文件的读写 发现一个乱码的问题

  文件内容如下

  

  运行结果如下

  

  代码如下

  

  观察其运行结果 部分的乱码 部分正常 不像是一般编码的错误 再仔细观察其代码 发现数组分配的是 个字节 猜测其代码可能在临界处拆分了某些汉字 于是让小朋友改成 运行后一切正常

  以上只是一个小小的插曲 只是没想到自己也会在类似问题上中招

  自己一直有些小想法 把一些繁琐网站操作根据日常的工作流程来程序化 想了很久 去年就开始策划 直到前两天才真正动手

  代码很简单 只是普通的client使用 做些专属的爬虫

  万万没想到的是 运行结果却出现了乱码 而且还是部分的乱码 网上也搜索过 类似的问题 多人都遇到 只是再也没有见到过有能够解决问题的答案

  乱码的形式是这样的

  直接访问网站 看到的内容是 <td>编号 </td> 但是通过代码回来的结果是 <td>编?</td>  

  代码如下

  <SPAN >  </SPAN>HttpGet get = new HttpGet(url);

  HttpResponse response = (get);

  HttpEntity entity = response getEntity();

  if (entity != null)

  BufferedReader br = new BufferedReader(new InputStreamReader(entity getContent()));

  String s = ;

  StringBuffer sb = new StringBuffer( );

  while ((s = br readLine()) != null)

  sb append(s + \\r\\n );

  

  br close();

  System out println(new String(sb toString() getBytes( GBK ) UTF ));

  

  怀疑过GBK没有包含网页所有的字符编码 胡思乱想过需要反复多次解码 折腾了 个小时 百思不得其解

  于是停下来 再思考可能出现错误的地方 sb的值由append方法加入 来源是BufferedReader的readLiine方法 会不会这个readLine有问题?

  干脆不要readLine 不要用BufferedReader 直接用InputSteam的read方法

  代码如下

  <SPAN >  </SPAN>HttpPost post = new HttpPost(url);

  HttpResponse response = (post);

  HttpEntity entity = response getEntity();

  StringBuffer sb = new StringBuffer();

  if (entity != null)

  InputStream is = entity getContent();

  byte[] bytes = new byte[ ];

  int size = ;

  while ((size = is read(bytes)) > )

  String str = new String(bytes size UTF );

  sb append(str);

  

  is close();

  

  return sb toString();

cha138/Article/program/Java/hx/201311/25743

相关参考

知识大全 解决java中文乱码

解决java中文乱码cd/usr/lib/jvm/javasun/jre/lib/fontssudomkdirfallbackcdfallbacksudocp/usr/share/fonts/true

知识大全 java页面中文乱码

代码如下   <Connectorport=""protocol="HTTP/"connectionTimeout=""redirectPort=""/><Connecto

知识大全 Java Struts1.2中文乱码处理

JavaStruts1.2中文乱码处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  建立文件继

知识大全 Linux下java的Swing/AWT程序乱码解决

Linux下java的Swing/AWT程序乱码解决  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 java连接mysql数据库乱码的解决方案

  解决方法一:  mysql安装时候的编码  看下myini有无  [mysql]  defaultcharacterset=utf  [client]defaultcharacterset=utf

知识大全 编程乱码问题初步探索[1]

  乱码的问题分为很多种很多人一见到有乱码就开始骂mysql其实很多情况下并不是mysql造成的  从乱码产生的原因来分析乱码的产生一般有以下几种情况  网页编码与程序编码不一致的问题  所谓的网页编

知识大全 JSP+ MySQL中文乱码问题post提交乱码解决方案

JSP+MySQL中文乱码问题post提交乱码解决方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 解决PHP初学者的乱码问题

解决PHP初学者的乱码问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!乱码一直是困扰PHP初学者

知识大全 解析Hibernate + MySQL中文乱码问题

解析Hibernate+MySQL中文乱码问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如

知识大全 解决XMLHTTP提交过时返回乱码问题

解决XMLHTTP提交过时返回乱码问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如