Unicode, UTF-8, GBK, ASCII的区别
看完知乎的两篇文章大概就明白了
https://zhuanlan.zhihu.com/p/25435644
https://www.zhihu.com/question/23374078
看完总结一下:
ASCII - 字符集和编码方案,一个字母或数字占用一个字节,一个字符=一个字节=8bit,不支持中文等字符
GBK - 字符集和编码方案,一个字符=两个字节=2*8bit,字母和数字仍然采用ASCII编码,如果第一个字节大于128,则和第二个字节结合起来
Unicode - 字符集, 一个字符=两个字节=2*8bit, 所有字母数字,特殊字符都占用两个字节, 分为ucs2和ucs4,ucs2两字节对应一个字符,ucs4四个字节对应一个字符,java采用ucs2
UTF-8/16 - Unicode的编码方案,UTF-8表示最少用8bit表示一个字符,UTF-16则最少用16bit来表示一个字符,UTF-8可变长的编码方案,字母和数字用一个字节表示,中文用3个字节表示
目前为了标准化,通常都使用UTF-8编码