JAVA 编码表的应用和乱码的处理

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/*java中字符串的编码
* 编码表:把计算机底层的二进制数据转换成我们能看懂的字符
*         ASCII码表
*         GB2312 完全包含ASCII码表 ----GBK
*         Unicode:所有的字符都占两个字节
*         UTF-8:长度可变的码表
*         ANSI 本地编码表:gbk
*         java中的字符串默认使用ANSI(gbk)
*
*         乱码:编码保持前后一致就可以解决
* */
public class EncoderDemo {
    public static void main(String[] args) throws IOException {
        String s = "高薪就业";
        byte[] bys = s.getBytes("UTF-8");//通过默认编码转换成字节数组

        FileOutputStream fos = new FileOutputStream("a.txt");
        fos.write(bys);
        fos.close();
        FileInputStream fis = new FileInputStream("a.txt");
        byte []bys2 = new byte[1024];
        int len = fis.read(bys);
        System.out.println(new String(bys2,0,len,"UTF-8"));
    }
}
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;

/*
* 字符流中的编码
* 1 对字符的编码进行修改
* 2 在文件中修改编码集
* 字符流 = 字节流 + 编 码
*
* */
public class EncodedDemo2 {
    public static void main(String[] args) throws IOException {
        // 第一种方法
        FileWriter fw = new FileWriter("b.txt");
        String s = "月薪过万";
        //byte[] bys = s.getBytes("UTF-8");
        fw.write(s);
        fw.close();
        //第二种方法
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("b.txt"),"UTF-8");
        osw.write("hello");
        osw.close();
    }
}

猜你喜欢

转载自blog.csdn.net/yuzhentao123/article/details/88744344
今日推荐