编码知识学习笔记之二
2011-08-04 11:36
218 查看
编码知识学习笔记之二
计算机使用的缺省编码方式就是计算机的内码。
2. GBK;
3. GB18030;
GB2312 支持的汉字太少。
从ASCII、 GB2312、GBK到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。
有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。
GBK完全包含GB2312的编码的字符集,GB2312的编码的字符集是GBK字符集的一部分
GB2312完全包含ASCII的编码的字符集,GB2312的编码的字符集是ASCII字符集的一部分
一.什么是内码
字符必须编码后才能被计算机处理。计算机使用的缺省编码方式就是计算机的内码。早期的计算机使用7位的ASCII编码,为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。计算机使用的缺省编码方式就是计算机的内码。
二.三种简体中文国标编码
1. GB2312;2. GBK;
3. GB18030;
三.详述三种简体中文编码
GB2312
GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。GB2312 支持的汉字太少。
GBK
1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。GB18030
2000年的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。从ASCII、 GB2312、GBK到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。
有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。
四.DBCS是什么
双字节字符集五.ASCII、 GB2312、GBK到GB18030,这些编码方法是向下兼容的,如何理解
GB18030完全包含GBK的编码的字符集,GBK的编码的字符集是GB18030字符集的一部分GBK完全包含GB2312的编码的字符集,GB2312的编码的字符集是GBK字符集的一部分
GB2312完全包含ASCII的编码的字符集,GB2312的编码的字符集是ASCII字符集的一部分
六.区位码如何转换为内码
GB2312的原文还是区位码,从区位码到内码,需要在高字节和低字节上分别加上A0七.GB的存储格式
在DBCS中,GB内码的存储格式始终是big endian,即高位在前。八.如何解析DBCS字符流
GB2312 的两个字节的最高位都是1。但符合这个条件的码位只有128*128=16384个。所以GBK和GB18030的低字节最高位都可能不是1。不过这不影响DBCS字符流的解析:在读取DBCS字符流时,只要遇到高位为1的字节,就可以将这两个字节(是指遇到的高位为1的字节,以及紧接着的下一个字节)作为一个双字节编码,而不用管低字节的高位是什么。相关文章推荐
- 编码知识学习笔记之二
- PHP学习笔记之二 php入门知识
- MPEG4 & H.264学习笔记之二 ------ 视频编码基本概念及时域模型
- python 3.0学习笔记之二------python基础小知识
- Python 编码知识学习笔记
- MPEG4 & H.264学习笔记之二 ------ 视频编码基本概念及时域模型
- 编码知识学习笔记之一
- 编码知识学习笔记之三
- 学习笔记之二_TCP/IP(CCNA知识考点)
- opencv学习笔记——之二基础知识1
- linux学习笔记之二:一些重要的必备知识
- 编码知识学习笔记之一
- PHP学习笔记之二 php入门知识
- 编码知识学习笔记之三
- linux网络编程学习笔记之二 -----错误异常处理和各种碎碎(更新中)
- NGUI 学习笔记实战之二——商城数据绑定(Ndata)
- 机器学习学习笔记之二:决策树
- 2010年SQLite学习笔记之二
- MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结
- Linux运维学习笔记-角色知识总结