Java读写文件中文乱码问题折腾一个周末重要解决
2015-07-26 20:42
513 查看
在用Java编程的过程中遇到一个非常奇怪的问题,折腾了一两天,现在终于解决。
之前老是出现“馄斤拷”这样的乱码,从文件中读取来的字符,英文显示正常,而一遇到中文,全部乱码。
要不出现乱码,必须做扎实这么几条:
1. 读入的文件编码一定要清楚,要设置必须准确设定,比如UTF-8就是UTF-8,不能确定文件编码时,用工具比如NOTEPAD++把文件打开,然后选择指定编码保存一遍。我之前其实程序已经没有问题,但是由于误认为要读取的文件已经是UTF-8,其实不是,所以实验许多遍都失败了,关键就是这一步没有做好。
2. 在程序中写好这样的代码:
这样文件输入流读取时就遵照UTF-8编码进行读入,如果你的文件编码是这个,就必须如此指定。
3. 如果程序设计多个步骤的文件读入读出操作,最好统一编码。
统一编码让工作更加简易,免于复杂的转换。
4.如果是用于网页显示,记得在网页内添加Charset=UTF-8的meta标签,否则网页也可能出现乱码。
5.跨越不同平台和移植到不同编程语言中时,遇到的编码问题会有差异,注意区别对待。
之前老是出现“馄斤拷”这样的乱码,从文件中读取来的字符,英文显示正常,而一遇到中文,全部乱码。
要不出现乱码,必须做扎实这么几条:
1. 读入的文件编码一定要清楚,要设置必须准确设定,比如UTF-8就是UTF-8,不能确定文件编码时,用工具比如NOTEPAD++把文件打开,然后选择指定编码保存一遍。我之前其实程序已经没有问题,但是由于误认为要读取的文件已经是UTF-8,其实不是,所以实验许多遍都失败了,关键就是这一步没有做好。
2. 在程序中写好这样的代码:
InputStreamReader isr=new InputStreamReader(fis,"UTF-8");
这样文件输入流读取时就遵照UTF-8编码进行读入,如果你的文件编码是这个,就必须如此指定。
3. 如果程序设计多个步骤的文件读入读出操作,最好统一编码。
OutputStreamWriter osw=new OutputStreamWriter(fos,"UTF-8");
统一编码让工作更加简易,免于复杂的转换。
4.如果是用于网页显示,记得在网页内添加Charset=UTF-8的meta标签,否则网页也可能出现乱码。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5.跨越不同平台和移植到不同编程语言中时,遇到的编码问题会有差异,注意区别对待。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统