ASCII:英文(0-127)
GBK:英文➕中文(GB国标 K拓展)
BIG5:台湾文字用
UniCode:英文➕中文(万国码)
想要存储在计算机里,必须是八的倍数,所以对于不足8位的二进制数字,计算机会进行补码操作。
存储:在ASCII查询存储英文对应的十进制数字,将其转化做二进制数字,对其进行编码,再存储。
读取:对其进行解码,随后将二进制数字转化做十进制数,在ASCII码表中查询,再获得。
特点:英文一个字节存储,字符集都兼容ASCII码表,开头以0补码,转换成十进制一定是一个正数。
与英文类似,在GBK字符集,或者Unicode字符集进行查询,随后将其编码。
为了与英文区分,同时因为汉字数量很多,有以下特点:
1、汉字在字符集中对应的数字都是两个字节。
2、汉字的第一个字节(也称之为高位字节),一定是以1开头,转换成十进制后是一个负数。
3、汉字的第二个字节(也称之为低位字节),可以是1/0开头,转换过后可正可负。
UTF-16:2-4个字节(英文2个)
UTF-32:4个字节
UTF-8 :1-4个字节(英文1个,中文三个)
英文:开头0
中文:1110 10 10
UTF-8是一个字符集吗?
答:不是,UTF-8是Unicode字符集的一种编码方式
一种字符集只能对应一种编码方式吗?
答:不是,Unicode有多种编码方式
字节流读取文件时,按照一个字节一个字节的读取,在UTF-8编码方式中,中文为3个字节,读取时拆分来读,会出现乱码现象。
编码时和解码时采取的方式不统一。
上一篇:MySQL学习技巧