首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

[Java] 部分乱码有关问题

2013-01-25 
[Java] 部分乱码问题前些日子,QQ群里面的某个小朋友在学习文件的读写, 发现一个乱码的问题。文件内容如下:

[Java] 部分乱码问题

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

文件内容如下:

[Java] 部分乱码有关问题

运行结果如下:

[Java] 部分乱码有关问题

代码如下: 

[Java] 部分乱码有关问题

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


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


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

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

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

乱码的形式是这样的: 

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

代码如下:

HttpPost httppost = new HttpPost(url);HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();StringBuffer sb = new StringBuffer();if (entity != null) {InputStream is = entity.getContent();byte[] bytes = new byte[4096];int size = 0;while ((size = is.read(bytes)) > 0) {String str = new String(bytes, 0, size, "UTF-8");sb.append(str);}is.close();}return sb.toString();

至此,烦人的部分正常部分乱码问题才真正搞定。

【警示】 以上代码片段仅为测试功能目的的示例,缺乏必要的异常处理。 如若在实际工程中引用,切记自行处理。


1楼chyiheyuan昨天 11:59
小朋友犯的错误有时候也能在日后的工作中帮助到你。

热点排行