汉语unicode编译方式,BIG5是繁体规范,GB是简体规范

GB是大陆使用的国标码,BIG5码,又叫大五码,是台湾使用的繁体码。

BIG5编码, GB编码(GB2312, GBK, ...), Unicode编码, UTF8, WideChar, MultiByte, Char 说明与区别

2014年12月31日 13:55:02 阅读数:4806 标签: BIG5GB2312GBKUnicodeUTF8 更多

个人分类: C/C++

一. BIG5编码, GB编码(GB2312, GBK, ...), Unicode编码

1.1. BIG5编码

BIG5字集是台湾繁体字集,共包括国标繁体汉字13053个

1.2. GB编码

GB2312字集是简体字集, 全称为GB2312(80)字集, 共包括国标简体汉字6763个;
GB2312是中国规定的汉字编码, 也可以说是简体中文的字符集编码;

GBK包含全部中文字符;
GBK字集是简繁字集, 包括了GB字集, BIG5字集和一些符号, 共包括21003个字符;
GBK是GB2312的扩展, 除了兼容GB2312外, 它还能显示繁体中文, 还有日文的假名;
GBK标准, 他兼容GB2312标准, 同时在GB2312标准的基础上扩展了GB13000包含的字;

注意:
1. GBK字集是简繁字集, 包括了GB字集, BIG5字集和一些符号; 例如BIG5编码能够表示XX汉字, GBK编码也能够表示XX汉字, 但是XX汉字的BIG5编码与GBK编码是不同的.
2. GBK编码兼容GB2312编码, 例如GB2312编码能够表示YY汉字, 那么GBK编码也能够表示YY汉字, 而且YY汉字的GB2312编码与GBK编码是相同的.
3. 也就是说"包含"与"兼容"是两回事来的.

1.3. Unicode编码

Unicode也是一种字符编码方法, 由国际组织设计, 可以容纳全世界所有语言文字的编码方案. Unicode的学名是"UniversalMultiple-Octet Coded Character Set". 简称为UCS。UCS可以看作是"Unicode CharacterSet"的缩写

1.4. 说明

1. ASCII, GB2312, GBK到GB18030的编码方法是向下兼容的. 而Unicode只与ASCII兼容, 与GB码不兼容.
例如"汉"字的Unicode编码是6C49, 而GB码是BABA.

2. 一般来说, 如果在简体中文操作系统中使用的繁体字, 选GBK码繁体中文; 如果在繁体中文操作系统使用繁体字, 选Big5码繁体中文;

1.5. 个人理解

BIG5编码, GB编码, Unicode编码相当于一个并列关系, 就是说使用不同的编码方式表达相同的内容.
例如"汉"字的Unicode编码是6C49, 而GB码是BABA.

二. Unicode编码与UTF编码

Unicode编码只是规定如何编码, 例如"汉"字的Unicode编码是6C49, 那么如何把"汉"字保存到文件中, 你可以直接把6C49的数值保存, 你也可以吧6C49这4个字符来保存, 也就是说需要一种保存格式(一种格式协议). UTF-8, UTF-7, UTF-16就是被广泛接受的保存格式.

2.1 举例UTF-8编码

UTF-8编码分段范围:
    编码范围        编码格式 
A. 0000 - 007F  0XXXXXXX
B. 0080 - 07FF  110XXXXX 10XXXXXX
C. 0800 - FFFF  1110XXXX 10XXXXXX 10XXXXXX

例如“汉”字的Unicode编码是6C49, 6C49在编码范围范围C之内, 所以使用编码格式C(1110xxxx 10xxxxxx 10xxxxxx). 将6C49写成二进制是:0110 110001 001001, 依次代替模板中的X,得到:11100110 10110001 10001001, 即E6 B1 89. 所以"汉"字的Unicode编码是6C49, UTF-8的编码是E6B189.
 现在把"汉"字的UTF-8的编码保存在文本中, 程序知道这是UTF-8编码, 提取E6B189中的信息得到6C49, 因为6C49必然是Unicode编码, 所以知道这个是"汉"字.(因为这是一个格式协议, 程序就是按照这个格式协议来解析这个文件的).

2.2 UTF的一些说明

UTF是“Unicode Transformation Format”的缩写(UTF-8与ISO-8859-1完全兼容);
UTF-8则包含全世界所有国家需要用到的字符(因为Unicode);
UTF-8编码的文字可以在各国各种支持UTF8字符集的浏览器上显示, 比如, 如果是UTF8编码, 则无需下载IE的中文语言支持包(相当于编码格式), 也可以在外国人的英文IE上也能显示中文(文字的显示只需要字体文件即可);
UTF-8的中文所占用的字节比使用GBK所占用的字节(UTF-8占用3字节, GBK占用2字节), 在html中, W3提倡用charset = "gbk", 而不是用charset = "gb2312";

2.3. 个人理解

1. UTF编码是针对Unicode编码的(例如2.1所说的例子), 所以如果GB编码与UTF编码互转, 需要通过Unicode编码做中间人.
2. Unicode编码, GB编码等就是对文字的编码规则, UTF编码是对Unicode编码的存储(传输)规则(不是对文字的编码规则).
3. 例如: 
 UFT8编码E6B189是对Unicode编码的, 那么对应的Unicode编码是6C49, 这个Unicode编码6C49代表中文的"汉"字;
 假设UFT8编码E6B189是对GBK编码的, 那么对应的GBK编码也是6C49, 但是这个GBK编码6C49肯定不是代表中文的"汉"字, 而是其他文字;

三. WideChar, MultiByte, Char

WideChar: 宽字符, 两个字节为一个字符, 比如Unicode码, 这是全球统一编码的, 每个字符占2个字节
MultiByte: 多字节码, 一个字节或两个字节为一个字符(DBCS就这样)
Char: ANSI的单字符
MultiByte 以及 Char 这两个应该是兼容的, 可以认为MultiByte是对ANSI的一种扩充, 有时它是一个字符占一个字节, 有时是占两个字节.

各编码之间的互换请看: http://blog.csdn.net/bagboy_taobao_com/article/details/8594466

BIG5, GB(GB2312, GBK, ...), Unicode编码, UTF8, WideChar, MultiByte, Char说明与区别相关推荐

  1. 关于编码ansi、GB2312、unicode与utf-8的区别

     关于编码ansi.GB2312.unicode与utf-8的区别 2014-01-25 08:51 529人阅读 评论(0) 收藏 举报 本文章已收录于: 关于编码ansi.GB2312.uni ...

  2. AJPFX解析关于编码ansi、GB2312、unicode与utf-8的区别

    大家平时遇到乱码问题是否有自己的一套解决方案?这篇文章就是介绍一下常用的编码方式 关于编码ansi.GB2312.unicode与utf-8的区别 先做一个小小的试验: 在一个文件夹里,把一个txt文 ...

  3. ASCII,GBK,Unicode(UTF-32/UTF-8),乱码,ANSI详解

    前言 总目录 日常开发过程中,经常会遇到ASCII,GBK,Unicode(UTF-32/UTF-8)等名词,对于这些概念是不是有点傻傻分不清呢?相信看下本文,你会有自己的理解. 一.ASCII码 1 ...

  4. 常用字符集(ASCII,ISO8859-1,GB2312,GBK,Unicode)和字符编码(UTF-8,UTF-16)

    转自:https://blog.csdn.net/wn084/article/details/80363792 参考:https://blog.csdn.net/halchan/article/det ...

  5. 深入理解-字符编码ASCII,GB2312,GBK,Unicode,UTF-8

    字符编码 简介 起初再考虑写不写这篇文章,感觉这篇文章比较枯燥乏味,而且自己感觉也没理解的太透彻,就把理解的记录下来,所以这是纪念版的 前方高能,非战斗人员请迅速撤离,我要开始装逼了. Go hard ...

  6. 字符编码简介:ASCII,Unicode,UTF-8,GB2312及Unicode和UTF-8如何转化

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51453797 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...

  7. ASCII, GB2312, GBK, Unicode, UTF8之间的区别和联系

    原文链接:https://zhuanlan.zhihu.com/p/258345888 感谢原作者的分享~本博客仅仅是为了做笔记 计算机是美国人发明的, 早期在处理文字方面, 美国人很自然地只考虑处理 ...

  8. 各种编码格式(GB2312,GBK,GB18030,unicode,utf-8)之间的关系

    汉字常用编码格式 为了在屏幕上显示字符.需要下面几个步骤: 制作所有字符对应的字模.比如大写字母A长什么样.这个模样就是最终显示在屏幕上图形,即我们看到的字符A. 为对所有的字符进行编码.比如大写字母 ...

  9. ANSI,Unicode,UTF-8网页编码的区别【转】

    1.ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte).也 ...

  10. utf8mb4 字符集(4字节 UTF-8 Unicode 编码)

    最近做项目遇到APP评论中有 emoji 表情符号,结果导致插入 MySQL 数据库失败,找到 MySQL 官方相关内容,这里斗胆翻译一下.在翻译过程中有些不明白的地方,如BMP.collation等 ...

最新文章

  1. JQUERY的父,子,兄弟节点查找方法
  2. 机器学习中的lazy method与eager method的比较
  3. leetcode面试题 04.02. 最小高度树(深度优先搜索)
  4. java ReentrantLock 使用
  5. Eclipse导入Elasticsearch源码
  6. 云际阔,总相连——Let's Connect!
  7. 汇付天下支付使用 NPC_SERVER
  8. Xcode pch文件配置及object c 单例创建
  9. 下载新浪股票历史数据
  10. 扇贝离线 android,扇贝单词离线
  11. c语言结构体编程时钟,c语言简单数学时钟(结构体,指针),求大佬帮助
  12. Centos备份文件
  13. 都23年了...仅存的视频号下载方法
  14. Python 修改字体颜色
  15. char(10)和nchar(10)的区别
  16. Ubuntu16.04下载截屏录屏软件
  17. 约瑟夫环(循环链表)
  18. 迅为iMX6ULL开发板-创建 ap 热点
  19. 谱密度 matlab,(完整word版)功率谱密度估计方法的MATLAB实现
  20. metabase前端开发环境构建(win10)

热门文章

  1. 中国大数据产业地图,四川61家大数据企业上榜!
  2. 谷歌地球看不了街景_谷歌街景车意外拍到的沙雕动物们……也是意想不到的快乐源泉啊!...
  3. android矢量地图画法_Android 我们的矢量地图,放大不失真
  4. html左侧浮动广告代码,纯js网页浮动广告代码
  5. 中国石油大学《测井解释与生产测井》第二阶段在线作业
  6. 计算机桌面图标被挡怎么办,win7电脑桌面图标被挡住怎么恢复 - 卡饭网
  7. linux下部署selenium爬虫程序
  8. 操作系统中的句柄是什么?
  9. 莱斯康混响插件合集 – Lexicon PCM LXP MPX Native Reverb WiN
  10. 信息安全制度(用户篇)