字符编码ASCII、ANSI、Unicode、UTF-8、GB2312

一、ASCII码

  1. ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),是用来表示英文字符的一种编码规范
  2. 每个ASCII字符占用1个字节(8bits),共有256位字符或符号
  3. 7位字符集广泛用于代表标准美国键盘上的字符或符号,而最高位为1的另128个字符被成为“扩展ASCII”,一般用来存放英文的制表符、部分音标字符等等的一些其他符号
  4. ASCII码表 :http://www.asciitable.com

二、ANSI码

  1. ANSI码(American National Standards Institute),美国国家标准学会的标准码。
  2. 不同的国家和地区制定了不同的标准,由此产生了 GB2312(中国), BIG5(台湾), JIS(日本) 等各自的编码标准。 这些使用 2 个字节来代表一个字符的各种延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。 不同 ANSI 编码之间互不兼容。
  3. 当然对于ANSI编码而言,0x00~0x7F之间的字符,依旧是1个字节代表1个字符。
  4. ASCII字符集是与ANSI字符集中的前面128个(0-127)字符相同。这一点是ASNI编码与Unicode编码之间最大也最明显的区别。(Unicode全是两字节)
  5. 各国ANSI编码转Unicode码对照表http://www.opensource.apple.com/source/libiconv/libiconv-24/libiconv/tests/
  6. 中文国标码与Unicode码:http://www.opensource.apple.com/source/libiconv/libiconv-24/libiconv/tests/CP936.TXT

三、Unicode码

  1. Universal Character Set 通用字符集
  2. Unicode有两套标准,一套叫UCS-2(Unicode-16),用2个字节为字符编码,另一套叫UCS-4(Unicode-32),用4个字节为字符编码。常用的UCS-2,它可以表示的字符数为2^16=65535,基本上可以容纳所有的欧美字符和绝大部分的亚洲字符 。
  3. ASCII字符集之间的不兼容问题 , ASCII字符是单个字节的,比如“A”的ASCII是65。而Unicode是双字节的,比如“A”的Unicode是0065,C语言使用‘\0’作为字符串结尾,这样一来,C语言的字符串函数将无法正常处理Unicode,除非把世界上所有用C写的程序以及他们所用的函数库全部换掉
  4. unicode全码表:http://www.tamasoft.co.jp/en/general-info/unicode.html
  5. 中文国标码 Unicode码 UTF8 对照表:http://www.ansell-uebersetzungen.com/gbuni.html

四、UTF8

  1. UTF= UCS Transformation Format UCS转换格式,UTF有2种:UTF-8和UTF-16 ,流行的的是UTF8
  2. 是Unicode传送格式。即把Unicode文件转换成BYTE的传送流,UTF8是为传送unicode而想出来的“再编码”方法,将Unicode编码规则和计算机的实际编码对应起来
  3. 它将Unicode编码为:
    00000000-0000007F的字符,用单个字节来表示;
    00000080-000007FF的字符用两个字节表示
    00000800-0000FFFF的字符用3字节表示

     

  4. d. 在UTF-8里,英文字符仍然跟ASCII编码一样,因此原先的函数库可以继续使用。中文的(Uincode)编码范围是在4E00(一) ~ 9FA0(龠) 之间,UTF8编码范围E4 B8 80(一) ~ E9 BE A0 (龠),三个字节

五、国标码(GB)

  1. GB码 是中文系统的ANSI编码
  2. 由于历史的原因,在Unicode之前,一共存在过3套中文编码标准。中国:GB2312 1980年 7445个字符 CP936、GBK 1995年 21886个字符 CP936、GB18030 2000年 27484字符 CP54936 不支持手机,MP3;台湾:Big5,是台湾使用的编码标准,编码了台湾使用的繁体汉字,大概有8千多个;香港:HKSCS,是中国香港使用的编码标准,字体也是繁体,但跟Big5有所不同。
  3. GBK兼容GB2312,加入了几乎所有的Big5中的繁体汉字。但是GBK中的繁体汉字和Big5中的几乎不兼容。

六、TXT文件识别编码的方式

Unicode、Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节,即BOM(Byte Order Mark),分别是xFFFE(Unicode小头,低字节在前),xFEFF(Unicode big endian大头,高字节在前),xEFBBBF(UTF-8 BOM,UFT-8可以存储BOM字节)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值