ASCII, Unicode和UTF-8

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_38102188/article/details/83898414
  1. ASCII
    英文字符集的编码方式:对应一个字节(8位),共可以表示256个字符,而英文字符集只需要128位,因此第一位是0。
  2. Unicode
    在ASCII编码之后,其他国家语言的字符集也需要对应的编码来表示,于是一时间出现了多种编码方式,在一段时间内出现了同一个二进制数在不同的语言中代表不同的字符的现象,因此互联网上的文件用不同的编码方式打开显示的是不同的文字,这时就迫切的需要一个超集出现来涵盖世界上所有语言中的字符,于是Unicode出现了。
    Unicode中一个二进制数代表唯一一个字符。
  3. UTF-8
    Unicode是一个很大的集合,目前可以表示100多万个字符。那么到底该如何对这些二进制数进行存储呢,于是出现了UTF-8, UTF-16,UTF-32等多种编码方式,其中互联网上使用最广泛的一种就是UTF-8编码方式,这是一种变长的编码方式。
    UTF-8编码方式也很简单,分为两种情况:
  • 用1个字节表示英文字符集,第一位统一为0;
  • 对于n字节的符号(n > 1),第一个字节的前n位都设为1,第n + 1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码。(详见阮一峰的文章

而中文字符大约是10万个左右,而2个字节最多仅可以表示65536个字符,因此中文的UTF-8码一般是2~3个字节。

总结:ASCII, Unicode和UTF-8三者之间的关系是UTF-8码包含ASCII码,而UTF-8这种编码方式只是Unicode二进制数字符集的一种编码方式而已。

参考:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

猜你喜欢

转载自blog.csdn.net/m0_38102188/article/details/83898414
今日推荐