ASCII码使用一个字节来表示128个字符,这种编码的最高位都为0。
GBK包含单字节字符和双字节字符,单字节字符和ASCII保持一致。为了和单字节字符区分开来,双字节字符的第一个字节的最高位必须是1。GB2312和GBK的编码规则一致。GBK是GB2312的超集,GB2312是ASCII的超集。
GB18030和UTF8类似,属于多字节字符集,每个字符可以由1个、2个或者4个字节组成,可以覆盖unicode的全部字符。单字节字符兼容ASCII。GB18030是GB2312的超集,除了个别字符外也可看作是GBK的超集。
UTF8是标准的多字节字符集,理论上最多可以由6字节表示一个字符,但是最多使用4个字节已完全覆盖了unicode字符集。对于单字节字符,和ASCII码完全一致。对于n字节字符(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10,剩下的没有提及的二进制位,全部为这个字符的unicode码。
UCS2使用定长2字节表示字符,因此可以表示unicode字符集中0~65535范围内的字符。UTF16是对UCS2的扩展,将不在0~65535范围内的字符使用定长4字节表示。所以,UTF16是UCS2的超集,且这两种字符集都不兼容ASCII。
UCS4使用定长4字节表示字符,而UTF32可以认为和UCS4大体相同。同样的,这两种字符集都不兼容ASCII。
http://www.eygle.com/archives/2004/09/nls_character_set_06.html
http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
GBK包含单字节字符和双字节字符,单字节字符和ASCII保持一致。为了和单字节字符区分开来,双字节字符的第一个字节的最高位必须是1。GB2312和GBK的编码规则一致。GBK是GB2312的超集,GB2312是ASCII的超集。
GB18030和UTF8类似,属于多字节字符集,每个字符可以由1个、2个或者4个字节组成,可以覆盖unicode的全部字符。单字节字符兼容ASCII。GB18030是GB2312的超集,除了个别字符外也可看作是GBK的超集。
UTF8是标准的多字节字符集,理论上最多可以由6字节表示一个字符,但是最多使用4个字节已完全覆盖了unicode字符集。对于单字节字符,和ASCII码完全一致。对于n字节字符(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10,剩下的没有提及的二进制位,全部为这个字符的unicode码。
UCS2使用定长2字节表示字符,因此可以表示unicode字符集中0~65535范围内的字符。UTF16是对UCS2的扩展,将不在0~65535范围内的字符使用定长4字节表示。所以,UTF16是UCS2的超集,且这两种字符集都不兼容ASCII。
UCS4使用定长4字节表示字符,而UTF32可以认为和UCS4大体相同。同样的,这两种字符集都不兼容ASCII。
http://www.eygle.com/archives/2004/09/nls_character_set_06.html
http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8367589/viewspace-730124/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8367589/viewspace-730124/