BIG5, GB(GB2312, GBK, ...), Unicode编码, UTF8, WideChar, MultiByte, Char说明与区别
汉语unicode编译方式,BIG5是繁体规范,GB是简体规范
GB是大陆使用的国标码,BIG5码,又叫大五码,是台湾使用的繁体码。
BIG5编码, GB编码(GB2312, GBK, ...), Unicode编码, UTF8, WideChar, MultiByte, Char 说明与区别
一. 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说明与区别相关推荐
- 关于编码ansi、GB2312、unicode与utf-8的区别
关于编码ansi.GB2312.unicode与utf-8的区别 2014-01-25 08:51 529人阅读 评论(0) 收藏 举报 本文章已收录于: 关于编码ansi.GB2312.uni ...
- AJPFX解析关于编码ansi、GB2312、unicode与utf-8的区别
大家平时遇到乱码问题是否有自己的一套解决方案?这篇文章就是介绍一下常用的编码方式 关于编码ansi.GB2312.unicode与utf-8的区别 先做一个小小的试验: 在一个文件夹里,把一个txt文 ...
- ASCII,GBK,Unicode(UTF-32/UTF-8),乱码,ANSI详解
前言 总目录 日常开发过程中,经常会遇到ASCII,GBK,Unicode(UTF-32/UTF-8)等名词,对于这些概念是不是有点傻傻分不清呢?相信看下本文,你会有自己的理解. 一.ASCII码 1 ...
- 常用字符集(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 ...
- 深入理解-字符编码ASCII,GB2312,GBK,Unicode,UTF-8
字符编码 简介 起初再考虑写不写这篇文章,感觉这篇文章比较枯燥乏味,而且自己感觉也没理解的太透彻,就把理解的记录下来,所以这是纪念版的 前方高能,非战斗人员请迅速撤离,我要开始装逼了. Go hard ...
- 字符编码简介:ASCII,Unicode,UTF-8,GB2312及Unicode和UTF-8如何转化
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51453797 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...
- ASCII, GB2312, GBK, Unicode, UTF8之间的区别和联系
原文链接:https://zhuanlan.zhihu.com/p/258345888 感谢原作者的分享~本博客仅仅是为了做笔记 计算机是美国人发明的, 早期在处理文字方面, 美国人很自然地只考虑处理 ...
- 各种编码格式(GB2312,GBK,GB18030,unicode,utf-8)之间的关系
汉字常用编码格式 为了在屏幕上显示字符.需要下面几个步骤: 制作所有字符对应的字模.比如大写字母A长什么样.这个模样就是最终显示在屏幕上图形,即我们看到的字符A. 为对所有的字符进行编码.比如大写字母 ...
- ANSI,Unicode,UTF-8网页编码的区别【转】
1.ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte).也 ...
- utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
最近做项目遇到APP评论中有 emoji 表情符号,结果导致插入 MySQL 数据库失败,找到 MySQL 官方相关内容,这里斗胆翻译一下.在翻译过程中有些不明白的地方,如BMP.collation等 ...
最新文章
- JQUERY的父,子,兄弟节点查找方法
- 机器学习中的lazy method与eager method的比较
- leetcode面试题 04.02. 最小高度树(深度优先搜索)
- java ReentrantLock 使用
- Eclipse导入Elasticsearch源码
- 云际阔,总相连——Let's Connect!
- 汇付天下支付使用 NPC_SERVER
- Xcode pch文件配置及object c 单例创建
- 下载新浪股票历史数据
- 扇贝离线 android,扇贝单词离线
- c语言结构体编程时钟,c语言简单数学时钟(结构体,指针),求大佬帮助
- Centos备份文件
- 都23年了...仅存的视频号下载方法
- Python 修改字体颜色
- char(10)和nchar(10)的区别
- Ubuntu16.04下载截屏录屏软件
- 约瑟夫环(循环链表)
- 迅为iMX6ULL开发板-创建 ap 热点
- 谱密度 matlab,(完整word版)功率谱密度估计方法的MATLAB实现
- metabase前端开发环境构建(win10)
热门文章
- 中国大数据产业地图,四川61家大数据企业上榜!
- 谷歌地球看不了街景_谷歌街景车意外拍到的沙雕动物们……也是意想不到的快乐源泉啊!...
- android矢量地图画法_Android 我们的矢量地图,放大不失真
- html左侧浮动广告代码,纯js网页浮动广告代码
- 中国石油大学《测井解释与生产测井》第二阶段在线作业
- 计算机桌面图标被挡怎么办,win7电脑桌面图标被挡住怎么恢复 - 卡饭网
- linux下部署selenium爬虫程序
- 操作系统中的句柄是什么?
- 莱斯康混响插件合集 – Lexicon PCM LXP MPX Native Reverb WiN
- 信息安全制度(用户篇)