计算机基础 -- ASCII,Unicode,UTF-8,UTF-16,UTF-32编码方式的不同

ASCII,Unicode,UTF-8,UTF-16,UTF-32编码方式的不同

参考文章:
Unicode Character Set and UTF-8, UTF-16, UTF-32 Encoding
彻底解决乱码问题(一):为何会出现乱码
Unicode字符需要几个字节来存储?

ASCII(8位,但是最高位为保留位,实际使用为7位)

ASCII表示了常用的符号(0 ~ 127),但是其他语言的字母没有表示,所以才有了不同的编码方式用来表示更多的字母。

Unicode(16位)

Unicode编码方式保证,不同语言之间的字母不会冲突
格式为:U+ Hex (比如A用Unicode表示为U+0041)

其他字符集可以自己查一下原理
UTF-8(一种字符编码方式,还有其他字符编码方式UTF-16等)

具体介绍可以看参考文章

1字节 0xxxxxxx
2字节 110xxxxx 10xxxxxx
3字节 1110xxxx 10xxxxxx 10xxxxxx
4字节 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

产生乱码的原因

因为编码方式和解码方式的不同导致,或者字符集没有统一

Unicode是常用字符集,ASCII,GB2312,GBK同样都是字符集。当文字需要被存储时,需要使用字符编码(UTF-8最常用),通过编码后存储在磁盘上,等需要读取时再通过相同的字符编码方式解码。

你可能感兴趣的:(计算机基础)