在日常工作当中,经常会遇到和字符编码相关的一些问题,今天来梳理一下,供日后查阅;
常见的编码方式有ascii码,utf-8, GB2302 GBK ANSI等
ascii码:
全称 American standard code for communication information, 由7bits表示,总共支持表示127个字符,最高位为0, 只能表示英文和标点符号;
utf-8:
utf-8 unicode编码的一部分,unicode编码可以对全球所有字符进行编码,每个字符都有一个唯一编码值,数值范围是 0x0000 至 0x10FFFF,有 1,114,111 即 100 多万个数值,可以表示 100 多万个字符;
utf-8是变长的编码方式,对于ASCII字符使用1个字节,但对于其他非ASCII字符(如中文、日文等)使用2到4个字节;其中中文占用3个字节;
utf-8编码方式:
GB2312和GBK:
这两种编码都是中文编码,都是ANSI编码的一种实现方式;在简体中文环境下,ANSI 编码实际上就是 GB2312 编码;其中GB2312只能表示简体中文,GBK是GB2312的扩展,能够表示繁体中文;这两种都是用2个字节表示中文字符;
ANSI:
ANSI 并不是具体的编码,而是指在不同地区使用的本地化字符编码方案。ANSI 编码依赖于操作系统中的代码页(Code Page),不同的代码页支持不同语言的字符。例如,Windows-1252 是用于西欧语言的 ANSI 编码,而 GB2312 本身可以被视为一种针对简体中文的 ANSI 编码(代码页936)。
字符集:根据不同的代码页,ANSI 编码可以表示不同语言的字符集
不同语言的ANSI编码不能兼容,如果使用错误的代码页打开文件,可能会导致乱码
分类: