java linux io 乱码,Java IO读写中文各种乱码问题 【转】

Java IO读写中文各种乱码问题

转自:http://blog.sina.com.cn/s/blog_484ab56f0101muzh.html

java.io.*读写中文各种乱码,很费劲。不完全解决方法如下:

对于Reader,直接使用Reader系列读取中文会乱码,需要先生成InputStream,再通过InputStreamReader转换为Reader,同时设定编码,才能避免乱码。如

FileInputStream fis = new FileInputStream("D:/a.txt");

BufferedReader

br = new BufferedReader(new

InputStreamReader(fis,"gb2312"));

对于RandomAccessFile,直接用RandomAccessFile去写中文的时候会有乱码,要这样使用写才没有乱码。

RandomAccessFile raf

= new RandomAccessFile("D:/c.txt","rw");

raf.seek(raf.length());//从文件尾部写

raf.write("我勒个去".getBytes("UTF-8"));//UTF-8或者gbk以打开的文件的实际编码为准。这个是文本文件是UTF-8编码时

raf.write("我勒个去".getBytes("gbk"));//这个是文本文件是gbk编码时

而RandomAccessFile的readLine方法读的时候,居然又变成了用8859_1编码读……不可思议啊。使用String的getByte和构造方法转换。

RandomAccessFile

raf = new

RandomAccessFile("D:/cc.txt","rw"); //源文件是Gbk编码

String l =

raf.readLine();

//这会按照8859_1读

l = new

String(l.getBytes("8859_1"),"gbk");

//将8859_1转成Gbk。如果源文件是utf-8,这儿就改成utf-8

另外发现几个类有转码的功能

PrintWriter(String

filename, String csn);//PrintWriter的构造函数可以选择编码(Csn:charset

name),csn可以是"UTF-8"或者"gbk"

"字符串".getBytes("UTF-8");

//String字符串在转为Byte[]时可以按指定编码转

new String(byte[] b,

String csn); //这个可以将byte[]编码转换

System.out.print(Charset.defaultCharset());

//可以显示系统当前默认编码是什么。默认编码会作为程序中各种编码使用

java(IO)读写文件乱码转换UTF-8问题

java(IO)读写文件乱码转换UTF-8问题 读取文件 String Content = ""; // 文件很长的话建议使用StringBuffer try { FileInpu ...

java io读写文件

java io读写文件相关阅读:http://www.cnblogs.com/wing011203/archive/2013/05/03/3056535.html public class DemoI ...

java中Cookie中文字符乱码问题

如果Cookie中的Value 中有中文字符出现,在加入Cookie的时候,会出现下面的错误: java.lang.IllegalArgumentException: Control characte ...

Java IO读写大文件的几种方式及测试

读取文件大小:1.45G 第一种,OldIO: public static void oldIOReadFile() throws IOException{ BufferedReader br = n ...

java程序中中文没有乱码,存入数据库后中文乱码问题

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/sys_user?useOldAliasMetadataBe ...

java中的中文参数存到数据库乱码问题

关于java中的中文参数乱码问题,遇见过很多,若开发工具的字符集环境和数据库的字符集环境都一样,存到数据库中还是乱码的话,可以通过以下方法解决: 用数据库客户端检查每个字段的字符集和字符集校对和这个表 ...

java 顺序 读写 Properties 配置文件 支持中文 不乱码

java 顺序 读写 Properties 配置文件 ,java默认提供的Properties API 继承hashmap ,不是顺序读写的. 特从网上查资料,顺序读写的代码,如下, import j ...

java读写中文文件

在用Java程序进行读写含中文的txt文件时,经常会出现读出或写入的内容会出现乱码.原因其实很简单,就是系统的编码和程序的编码采用了不同的编码格式.通常,假如自己不修改的话,windows自身采用的编 ...

java 读取文件中文乱码问题

很少写java io的代码,今天整了一个发现 本地调试好好的,放到jmeter里就打印乱码.一番折腾,终于搞定~直接上代码: List orderList = new Arr ...

随机推荐

漫谈C++:良好的编程习惯与编程要点

以良好的方式编写C++ class 假设现在我们要实现一个复数类complex,在类的实现过程中探索良好的编程习惯. ① Header(头文件)中的防卫式声明 complex.h: # ifndef ...

python之函数

本节主要内容: 1. 上节遗留的内置函数: callable(), chr(),ord(), compile(), eval(),exec(), divmod(), isinstance() ,fil ...

转: MVC设计思想简介

模型-视图-控制器(MVC)是80年代Smalltalk-80出现的 一种软件设计模式,现在已经被广泛的使用. 1.模型(Model) 模型是应用程序的主体部分.模型表示业务数据,或者业务逻辑. 2. ...

PHP访问数据库

1.原生mysql方式 <?php //最原生态的访问方式,不过SQL注入是个麻烦事 $con = mysql_connect("localhost","root& ...

YTU 2605&colon; 熟悉题型——自由设计(比较大小-类模板)

2605: 熟悉题型--自由设计(比较大小-类模板) 时间限制: 1 Sec  内存限制: 128 MB 提交: 125  解决: 107 题目描述 声明一个类模板,利用它分别实现两个整数.浮点数和字 ...

使用 PIVOT 和 UNPIVOT

http://msdn.microsoft.com/zh-cn/library/ms177410%28v=SQL.90%29.aspx 可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式 ...

Deep Learning(深度学习)网络资源

Deep Learning(深度学习) ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一 ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习): ...

ZOJ 1610 Count the Colors 【线段树】

题目大意: 在[0,8000]这个区间内,不断进行一些操作,将其中的一些区间染成特定颜色,如果区间重复的话,后面染的色块会覆盖前面染的色块,问最终[0,8000]这个区间内每 ...

WINDBG解决cpu占高的问题

https://blog.csdn.net/yenange/article/details/62886988 https://blog.csdn.net/zhushentian/article/det ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值