Java读取文件----中文乱码问题

  在用Java读写文件时,发现读取的文件在用控制台输出之后中文部分出现了乱码的问题。

  先不吐槽为毛中文这么多怪事。

  对于不同的文件,它们的默认编码格式可能是不同的,有的是gbk,有的是utf-8,又或者是ISO-8859-1之类的。

  总而言之,一遇到中文就会出现各种奇怪的乱码行为,尤其是IDE还会有个默认的编码格式出来捣乱,比如Eclipse,它的默认编码就是GBK,但实际上,貌似utf-8用的更普遍一些。

  那么,关于读写文件时出现的中文乱码问题应该如何解决呢?请看下面的代码。

 

File file = new File("C:\User.ftl");
FileReader fr;
try {
  fr = new FileReader(file);
  BufferedReader br = new BufferedReader(fr);

  String nextline="";
  while( (nextline=br.readLine()) !=null) {
    nextline = new String(nextline.getBytes("GBK"),"UTF-8");//将读取出来的GBK格式的代码转换成UTF-8
    //因为Eclipse的默认格式是GBK,而我们读到的ftl文件的格式是UTF-8
    //当然,实际上要根据实际的情况来进行修正。
    System.out.println(nextline);
  }
}

也就是说,强制转换一下读取出来的字符串格式就行了。至于究竟要从哪个格式转换成哪个,就要看文件和IDE了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值