ASCIC
总共有128个,用一个字节的低7位表示,0-31是控制字符如换行,回车,删除等,32~126是打印字符,可以通过键盘输入并且能够显示出来。
ISO-8859-1
ISO组织爱ASCII码基础上又制定了一系列标准用来扩展ASCII,它们是ISO-8859-1~ISO-8859-15。ISO-8859-1涵盖大多数西欧语言字符。单字节,可表示256个字符。
GB2312
全称《信息交换用汉字编码字符集基本集》。双字节编码,编码范围是A1-F7,A1-A9是字符区,总共包含682个字符,B0~F7是汉字区,包含6763个。
GBK
全称《汉字内码扩展规范》。为了扩展GB2312,编码范围是8140~FEFE(去掉XX7F),共有23940个码位,它能表示21003个汉字,GB2312可以用GBK来编码,不会出现乱码。
GB18030
国家强制标准,字符可能是单字节,双字节也可能是四字节的,与GB2312兼容,实际应用系统中并不广泛。
UTF-8
UTF-8使用变长表示,不同类型的字符可以由1~6个字节组成。节省空间。
UTF-8编码规则:
如果一个字节,最高位为0,表示这是一个ASCII字符。
如果一个字节,以11开头,连续的1的个数表示这个字符的字节数。例如:110XXXXX代表它是双字节字符的首字节
如果一个字节,以10开始,表示他不是首字节,需要向前查找当前字符的首字节。
UTF-16
双字节定长表示。Java以它作为内存的字符存储格式。
Java中需要编码的场景
IO操作
这个io包括磁盘IO,网络IO。