IO流(二)
01_转换流出现的原因 读取汉字并输出在控制台 用字节流
汉字是由2个字节,单独拆开打印是没有意义的,所以你一个字节一个字节的读取并在控制台输出就会出现问题
为什么昨天我们一次读写一个字符复制一个文本文件就没有出现问题?
因为昨天的文件复制是整体的拷贝,然后拷贝完之后整体的打开就没有问题
02_编码表概述和常见编码表
1,常用的编码都兼容ASCII
2,常见的乱码问题主要是因为你编码和解码所采用的编码表不一致(请求和响应,前后编码不一致)
03_String类中的编码和解码问题
编码:把看得懂的变成看不懂的
public byte[] getBytes(String charsetName) // String 编码为 byte数组
解码:把看不懂的变成看得懂的
public String(byte[] bytes, String charsetName)//byte 数组解码为 String
1,平台默认的编码的是gbk
2,汉字用GBK编码占2个字节,用 UTF-8 编码占3个字节
3,用什么码表来编码,就要用什么码表来解码,就不会乱码
汉字用GBK编码,用UTF-8解码 会出现乱码