什么是字符编码
计算机只能识别01,要想识别人类文字,需要用01序列表示字符
字符编码有哪些
ASCII码,对英文字符进行二进制编码,128个,通过ASCII码表可查询0-127对应的字符,其中26个大写英文字母的码值是65 - 90,26个小写英文字母的码值是97 - 122
Unicode字符集,UTF-8,UTF-16都是unicode字符集的实现
- UTF-8:使用1到4个字节为每个字符编码
- UTF-16:使用2到4个字节为每个字符编码
- UTF-32:使用4个字节为每个字符编码
一个中文字符一般使用3个字节存储,特殊的使用4个字节存储
GBK,GB3212,GB18030,中文字符编码
GB3212: 16位字符集,适用于简体汉字(非繁体),收录6763个汉字,682个字符,共计7445个字符
GBK: 16位字符集,适用于中文简繁体,收录21003个汉字,883个字符,共计21886个字符,向下兼容GB2312,向上兼容ISO-10646,所有字符都能一一映射到unicode2.0
GB18030: 32位字符集,适用于藏蒙等少数名字文字,共收录27484个汉字
为什么出现乱码
编码和解码的字符编码不一样,则产生乱码
参考资料
Hollis 大神的《2023全新Java面试宝典课程,八股文学习资料》