一文读懂所有的编码方式(UTF-8、GBK、Unicode、宽字节...)

    编码方式就分两类:ANSI编码、Unicode编码。这两类编码都兼容ASC码。

    -------------------------------------------------------------------------------------------------------

    ANSI编码:

    ANSI编码是指各国制订的自己文字的编码: 中国大陆: gb2312 -> GBK -> GB18030

    中国台湾省:big5(繁体)

    韩国:Euc-kr

    日本:Shift_JIS

    等等……

    ANSI编码中:英文用一个字节(兼容ASC码),各国自己的文字用二到四个字节。不同国家的编码互不兼容。

    gb2312和GBK中汉字占两个字节。

    我国最新的国家强制标准为:GB18030-2000,包含27533个汉字。用一、二、四字节编码。

    --------------------------------------------------------------------------------------------------------

    Unicode编码

    Unicode是一套全球统一的编码规范,共110多万个字符。

    UTF-8、UTF-16、UTF-32分别是Unicode的三种不同存储方式,具体情况如图所示:

    UTF-8的具体存储方式如下:

    --------------------------------------------------------------------------------------------------

    微软的宽字节:指Unicode编码,存储方式采用UTF-16。因为只有2字节和4字节两种情况,故用wchar_t,占两个字节。

    多字节:指ANSI编码。由于英文占一个字节,所以用char,占一个字节。