zoukankan      html  css  js  c++  java
  • I/O输入输出-解码乱码问题

    有时候文件会出现一些乱码问题

    /**
     * 转换流:字节流转字符流,处理乱码(编码集,解码集)
     * 1编码与解码的概念
     * 编码: 字符----编码字符集->二进制
     * 解码:二进制---解码字符集->字符
     * 2乱码
     * 1)编码与解码的字符集不 统一
     * 2)字节缺少,长度丢失、

    **/

    以下在在编码与解码字符出现的统一的情况下出现乱码

    public static void test() throws UnsupportedEncodingException
        {
            //解码   byte--->char
                    String  str = "中国";//gbk
                    //编码  char --->byte
                    byte[] data = str.getBytes();//将str转换成字节数组
                    //编码与解码字符集统一
                    //通过使用指定的 charset 解码指定的 byte数组,构造一个新的 String。新 String 的长度是字符集的函数,因此可能不等于 byte 数组的长度。 
                    System.out.println(new String(data));
                    
                    System.out.println("*************");
                    //设定编码字符集
                    data = str.getBytes("utf-8");
                    //不统一出现乱码
                    System.out.println(new String(data));
                    
                    
                    System.out.println("*************");
                    //编码
                    byte[] data2 = "中国".getBytes("utf-8");
                    //解码
                    str = new String(data2,"utf-8");
                    System.out.println(str);
        }

    解码文件:

     public static void test1() throws IOException
        {
            //指定解码字符集
            BufferedReader br = new BufferedReader(
                    new InputStreamReader(
                            new FileInputStream(
                                    new File("e:/test/zjf.txt")))
                    );
            String info = null;
            while(null!=(info = br.readLine()))//读取每一行
            {
                System.out.println(info);
            }
        }
  • 相关阅读:
    react注意事项
    小程序的页面滚动
    calc
    写好的vue项目怎么打包成uniapp形式
    处理其他系统过来的token.
    解析token
    iframe接受不同域名的token
    tree懒加载的使用,
    js防抖节流
    vue2.0和vue3.0的区别
  • 原文地址:https://www.cnblogs.com/zjf-293916/p/6013076.html
Copyright © 2011-2022 走看看