`

文件流 读文件 乱码的正确解决方案

阅读更多
这个问题经常遇到,这里告诉大家问题的根本,也是解决问题的根本。一个文件流必须用和它的编码类型完全一致的输入流去接收才不会产生乱码。如果不说明编码类型,java默认都是按照iso-8859-1进行编码的。而我们的页面编码类型往往是gb2312或者utf-8,所以必须指明编码类型才不会出现乱码。具体操作也不难,只要按照以下两个步骤即可:

第一:必须确定文件流的编码类型。
第二:用和文件流编码类型相同的InputStreamReader去读取这个文件流。

例如:我们有一段网页获得文件流,那页面源码会非常明确的告诉您该流的类型,如下显示:
<html>
<head>
<meta http-equiv=content-type content="text/html; charset=gb2312">
......


这段文字告诉我们文件流编码是gb2312格式。这样我们的InputStreamReader即文件流读取类也需要时gb2312格式,如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class Test001 {
	public static void main(String[] args) throws IOException {
		// 定义一个url类的实例。
		URL url = new URL("http://www.baidu.com");
		// 以特定格式读取文件流。
		InputStreamReader isr = new InputStreamReader(url.openStream(),
				"gb2312");
		BufferedReader br = new BufferedReader(isr);
		String s;
		while (null != (s = br.readLine())) {
			System.out.print(s);
		}
	}
}



明白了上面的道理,在读取任何流的时候都都会是乱码了。

另外运行上面的代码,您还会获得一个效果:在本地打印baidu首页的源码。

文章地址:http://javapub.iteye.com/blog/719523
3
3
分享到:
评论
1 楼 wenyizeng 2011-12-06  
嗯 不错  

相关推荐

    国外空间出现乱码的几种解决办法

    国外空间出现乱码的几种解决办法,首先,把您的asp源文件放在 IIS 里进行全面测试,调用每一项功能,确认它完全能够使用,并正确显示中文,并打开 *.mdb 数据库文件查看中文显示是否正常。全部通过后,做好备份文件...

    MySQL字符集乱码及解决方案分享

    前言 字符集是一套符号和编码的规则,不论是在oracle数据库还是在mysql数据库,都...2、乱码演示 mysql&gt; show variables like 'character_set%'; +--------------------------+----------------------------------+ |

    MATLAB高版本打开低版本方法详解.doc

    MATLAB版本问题可以涉及多种情况,以下是一些常见问题和解决策略: ...总之,针对MATLAB版本问题,建议始终查阅MathWorks官网的最新文档,以及每次更新的Release Notes,以获取最准确的支持信息和解决方案。

    LuaStudio v9.8.6.zip

    1、工程管理、添加解决方案里所有的符号提示功能、有跳转到函数定义处的功能、 2、代码定义提示窗口、能自动跳转提示 3、调试内核重新优化、速度能大大提高、 4、解决了Attach调试时临时变量有几率提示不正确的...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    每个实例都是经过笔者精心筛选的,具有很强的实用性,其中一些实例是开发人员难于寻觅的解决方案。 本书两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;本书实例来源...

    DotNetTextBox V6.0.10 商业版 下载 (已知最新)

    5)源代码解决方案简化,支持vs2013以上版本打开,项目默认支持ajax 2009/06/23 Version 6.0.8 For VS2005/2008 Updates: 1)去掉现在基本没法使用的插入EXCEL表格功能,改为无组件的导入EXCEL文档功能...

    修复XP+Win7双系统启动引导

    简化出先vista/2008/win7后装2000/xp/2003多系统最简解决方案:2000/xp/2003光盘引导直接装至其它分区,完成后运行本程序修复即可 3、修复其他因BCD相关引起的故障 a.BCD引起的win7/2008r2的修复计算机(Windows ...

    ssh(structs,spring,hibernate)框架中的上传下载

     以上是Spring+Hibernate将文件二进制数据持久化到数据库的解决方案,而Struts通过将表单中file类型的组件映射为ActionForm中类型为org.apache.struts.upload. FormFile的属性来获取表单提交的文件数据。  工程...

    asp.net知识库

    一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标放在一个连接上,会显示图片(类似tooltip) 使用microsoft.web.ui.webcontrols的TabStrip与...

    BCDautofix( NT6 启动菜单自动修复工具) v1.0.5 绿色版.zip

    简化出先vista/2008/win7后装2000/xp/2003多系统最简解决方案:2000/xp/2003光盘引导直接装至其它分区,完成后运行本程序修复即可 3、修复其他因BCD相关引起的故障 a.BCD引起的win7/2008r2的修复计算机(Windows ...

    双系统启动菜单自动修复工具BCDautofix V1.0.3 绿色版.zip

    简化出先vista/2008/win7后装2000/xp/2003多系统最简解决方案:2000/xp/2003光盘引导直接装至其它分区,完成后运行本程序修复即可 3、修复其他因BCD相关引起的故障 a.BCD引起的win7/2008r2的修复计算机(Windows ...

    BCDautofix V1.0.3

    简化出先vista/2008/win7后装2000/xp/2003多系统最简解决方案:2000/xp/2003光盘引导直接装至其它分区,完成后运行本程序修复即可 3、修复其他因BCD相关引起的故障 a.BCD引起的win7/2008r2的修复计算机(Windows ...

    双系统启动菜单自动建立和修复工具

    简化出先vista/2008/win7后装2000/xp/2003多系统最简解决方案:2000/xp/2003光盘引导直接装至其它分区,完成后运行本程序修复即可 3、修复其他因BCD相关引起的故障 a.BCD引起的win7/2008r2的修复计算机(Windows ...

    BCD修复工具

    简化出先vista/2008/win7后装2000/xp/2003多系统最简解决方案:2000/xp/2003光盘引导直接装至其它分区,完成后运行本程序修复即可 3、修复其他因BCD相关引起的故障 a.BCD引起的win7/2008r2的修复计算机(Windows ...

    BCDautofix V1.0.2 启动菜单自动修复工具

    简化出先vista/2008/win7后装2000/xp/2003多系统最简解决方案:2000/xp/2003光盘引导直接装至其它分区,完成后运行本程序修复即可 3、修复其他因BCD相关引起的故障 a.BCD引起的win7/2008r2的修复计算机(Windows ...

Global site tag (gtag.js) - Google Analytics