1)指定了编码,对应的字符集就指定了;
2)ASCII:
老美发明的-->英语、字符、回车、退格等;
生活中的文字和计算机中文字对应关系;
IOS-8859-1:
欧洲的,拉丁等-->单字节编码,兼容ASCII
GBXXX:
GB2312: 简体中文 7000多-->单字节
GBK: 21003个-->双字节编码(默认)
GB18030: 70244个汉字-->1 2 4个字节组成,支持少数民族的.
Unicode:
万国码
包含世界所有国家的文字,最多使用4个字节的数字来表达每个字母、符号或者文字.
UTF-8(最常用,互联网协议都支持),支持1-4个字节为每个字符编码:
1.128个US-ASCII字符,只需要一个字节编码
2.拉丁文等字符,需要2个字节编码
3.大部分常用字(含中文),使用3个字节编码
4.其它极少Unicode辅助字符,使用4字节编码(如:藏文)
UTF-16
UTF-32
3)编码表的本质:生活中的文字和计算机中二进制的对应规则.
4)IDE默认 utf-8
windows系统默认是GBK编码(ANSI)
5)转换流的出现:
FileReader读取GBK出现乱码的原因:
FileReader做的事情是:
读取字节-->查询UTF-8编码表-->转换为我们能看懂的字符;
因此如果不是UTF-8编码,FileReader则出错,解码不了;
6)InputStreamReader extends Reader:
InputStreamReader: 是 `字节流通向字符流的桥梁`,它使用指定的charset读取字符并将其解码为字符,
它使用的字符集可以由名称指定或显示指定,或者可以接收平台默认的字符集.
7)GBK: 你好 -55-44 -33-34-->共4个字节, 2个字节存储一个中文
UTF-8: 你好 -11-12-23 -19-56-78-->共6个字节, 3个字节存储一个中文
8)InputStreamReader强大之处: 可以查询指定的码表
9)OutputStreamWriter:
编码作用: 把能看懂的字符-->变为看不懂的字节