三、字符集

八、宽字节和窄字节:

  8.1、因为char为一个字节8位,所以很多时候我们会把它说等同于byte。

  8.2、所以呢,char(8bit)叫做窄字节,wchar_t(short、16bit)叫做宽字节。

  8.3、char 和 wchar_t 经常指向字符。

  8.4、所以此时就和字符集产生了关系。

  8.5、ASCLL字符集:255个字符。

  8.6、ASCLL字符集是不够我们用的。

  8.7、UTF-8、UTF-16、UTF-32:ISO制定出来的、这套字符集包含了全世界所有的字符集。

  8.8、UTF-8:字符最小单位是8位。

  8.9、UTF-16:字符最小单位是16位。

  8.10、UTF-32:字符最小单位是32位。

  8.11、UTF是一个大的标准,标准制定了所有字符(包括外星字符)的数值。

  8.12、其中的0 - 255 是和 ASCLL字符集是重合的、而之后的按照区间分区的。

    比如(这只是假设,实际情况不是这样):34234 - 232453, 表示的中文, 453453 - 2354356,表示日语;等等。。

  8.13、当然如果所有的字符都占用32位的话,是不是很浪费。

    列如:8bit大小的用32位来表示:这是相当浪费的行为;

  8.19、UTF-8:可变长 8bit:(现在比较流行的一种字符集,多用于网络)

    列如:(只是做假设)

      //字符 32位                   //可变长8位(实际的数据)
    我 0101 0011 0001 1000 0111 1001 0101 0100   0101 0011 0001 1000 0111 1001 0101 0100
    是 0000 0011 0001 1000 0111 1010 0100 0000     0011 0001 1000 0111 1010 0100 0000
    x 0000 0000 0000 0000 0000 0000 0111 1000    0111 1000
    h 0000 0000 0000 0000 0000 0000 0100 1100    0100 1100
    g 0000 0000 0000 0000 0000 0000 0110 1010    0100 1100

  8.20、UTF-16:在UTF-8的前面再多8位。Windows用的就是UTF-16编码。通用的Unicode编码。

  8.21、所以在Windows中使用wchar_t装数据更便捷,char是可以装但不便捷。

  8.21、UTF可以相互转化。

posted @ 2017-05-09 17:58  _xiaohaige  阅读(217)  评论(0编辑  收藏  举报