参考资料:字符编码和中文乱码小叙
当前windows xp 的默认字符集为gbk。
ASCII是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。
约定计算机具体用哪些二进制数字表示哪个符号,这样的一套规则就称为编码。
大家在互相通信时使用的编码规则不一样,就会导致乱码。为了不造成混乱,美国有关标准组织出台了ASCII编码,统一规定了常用符号用哪些二进制数表示。
最初学习计算机,首先接触的是ASCII编码。0是48,a是97.
ASCII是标准的单字节字符编码方案,用于基于文本的数据。
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。
更多相关介绍参见百度百科:ASCII
计算机中位和字节的关系:
计算机中以8bit(位)为一个byte(字节),于是一个byte能表示256个数。
ASCII用一个字节,并且第一位是0,也就是只用了7bit,于是ASCII只有128种表示,这对于英文系统足够了。
使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。
扩展ASCII 字符是从128 到255(0x80-0xff)的字符。
扩展ASCII不再是国际标准。
ascii是用一个字节,并且第一位是0,也就是说只用了7个bit,于是ASCII只有128种表示,这对于英文系统是最够的了。但是欧洲很多字母和英文字母很不相同,于是为了扩展,第一位也纳入使用,这样就是ISO8859-1编码,又叫做latin-1,很多时候你不指定编码的时候,默认编码就是ISO8859-1,这是一个要注意的地方。
ASCII用一个字节,并且第一位是0,也就是说只用
ASCII用一个字节,并且第一位是0,也就是说只用了7bit,于是ASCII只有128种表示,这对于英文系统是足够了。
但是欧洲很多字母和英文字母很不同,于是为了扩展,第一位也纳入使用,这就是ISO-8859-1编码,又叫做latin-1.S
很多时候不指定编码的时候,默认编码是ISO-8859-1.
0-127 是7位ASCII 码的范围,是国际标准。
至于汉字,不同的字符集用的ascii 码的范围也不一样。
常用的汉字字符集有GB2312-80,GBK。
GB_2312 字符集是目前最常用的汉字编码标准,windows 95/98/2000 中使用的 GBK字符集 就包含了GB2312,或者说和GB2312 兼容,GB_2312 字符集包含了 6763个的 简体汉字,和682 个标准中文符号。
在这个标准中,每个汉字用2个字节来表示,每个字节的ascii码为 161-254 (16 进制A1 - FE),第一个字节 对应于 区码的1-94 区,第二个字节 对应于位码的1-94 位。
161-254 其实很好记忆,大家知道英文字符中,可打印的字符范围为33-126。将 这对 数加上128(或者说最高位置1),就得到汉字使用的字符的范围。
//GB18030的规范是汉字第一个字节在0x81-0xFE之间,第二个字节位于区间0x40-0x7E以及0x80-0xFE。每个字节转化为整数大于128。
对于中文编码而言,大家比较熟悉的是GB2312编码,这是大陆地区推行的简体字的编码标准,而相应的台湾的繁体字用的是BIG5的繁体字编码。
由于GB2312只有简体字,后来又进行了扩充,便有了GBK。
GBK是GB2312的超集,也就是说GB2312编码的字符,都可以用GBK方式解读。
更多资料参考:
字符编码和中文乱码小叙
Windows 系统字符编码
Windows 记事本的 ANSI、Unicode、UTF-8 这三种编码模式有什么区别?
UNICODE,GBK,UTF-8区别
关于有符号数、无符号数和数据类型的总结
谈谈Windows程序中的字符编码
在開啟及儲存檔案時選擇文字編碼方式
UTF-8 GBK UTF8 GB2312之间的区别和关系
UTF-8,GB2312及ISO-8859-1区别