java–转换文件编码

1.概念与问题

1.1 字符编码

计算机中存储的信息都是用二进制数表示的,而我们在屏幕上看到的数字丶英文丶标点符号丶汉字等字符是二进制数转换之后的结果. 根据某种规则,将字符存储到计算机中,称为编码.反之,将存储在计算机中的二进制数按某种规则解析显示出来,称为解码. 例如,按照A规则存储,那么想要解析显示出正确的文本符号,同样需要按照A规则解析,否则将会导致乱码现象.
字符编码 (Character Encoding) :一套自然语言的字符与二进制之间的对应规则.

1.2 字符集

字符集是一个系统支持的所有字符的集合,包括各国的文字丶标点符号丶图形符号丶数字等
计算机要准确的存储和识别各种字符集符号,需要进行字符编码,一套字符集至少有一套字符编码.常见的字符集有ASCII字符集丶GBK字符集丶Unicode字符集等.如图所示:在这里插入图片描述

当指定了编码,它所对应的字符集也指定了. 想更详细了解各字符集丶编码信息,可在百度中搜索,这里不一一介绍.

1.3 编码引出的问题

在IDEA中,使用FileReader读取项目中的文本文件.由于IDEA的设置,都是默认的UTF-8编码,所以在读取时没有任何问题.但是,当读取Windows系统中创建的文本文件时,Windows系统中默认的是GBK编码,就会出现乱码的现象.如下所示:

public class Test {
   
    public static void main(String[] args) throws Exception {
   
        FileReader fr = new FileReader("C:\\Users\\86184\\Desktop\\a.txt");
        int len;
        while ((len = fr.read()) != -1){
   
            System.out.print((char)len);
        }
        fr.close();
    }
}
//实际文件内容: 你//
输出结果:
��

那么我们如何实现读取GBK编码的文件呢?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值