unicode gbk utf-8的差异
GB2312(1980年)定义,包含6763个汉字,682个字符
GBK1.0 定义了21003个汉字,21886个字符
ASCII->GB2312->GBK 编码方式向后兼容,即同一个字符在这些编码方案中总是有相同的编码,只是越到后面支持的字符更多
区分中文编码的方法是高字节的最高位不为0(@todo),两个字节的最高位都是1
GB2312,GBK都属于双字节字符集
GB18030(2000年)取代GBK1.0成为正式的国家标准,定义了27484个汉字。编码采用单字节,双字节,四字节(四字节码位,收入了CJK扩展的6582个汉字)
CJK(中日韩)扩展 unicode (0x3400—0x4db5)
unicode 为节省码位,将中日韩三国语言中的文字统一编码
GB2312的原始编码是区位码,从区位码到内码,需要在高字节和低字节上分别加上 “A0”。
GB2312 用区位码表示,用两个数来编码汉字和中文符号(第一个为区,第二个为位)
内码是指OS内部的编码(早起和语言相关,现在都使用unicode了,已经无关了)
任何字符编码,编码单元的顺序都是有编码方案制定的,与endian(字节序)无关。
例如:
GBK 编码单元是字节,用两个字节表示一个汉字,这两个字节的顺序是固定的,不受CPU字节序(endian)的影响。
utf-16 编码单元是word(字),word之间的顺序是由编码方案制定的,word内部的顺序收到endian(字节序)的影响。
DBCS字符流解析,遇到最高位为1的字节,就将下两个字节作为双字节编码。
unicode 只与 ASCII 兼容, 与GB不兼容
eg: “汉” 的编码
unicode 6c49
GB BABA
unicode 是一种字符编码方法(兼容世界上所有语言的编码方案)
全称:universal multiple-octet coded character set
简称:USC: unicode character set
unicode 2.0 (1991年)采用 iso-10646-1相同的字库和编码
unicode 最新版本 unicode 4.0(2005年)
USC 规定了如何编码,并未规定如何传输和保存编码
内码和code page
windows内核已经支持unicode
windows 曾经使用 code page 适应国际化(支持单字节和双字节编码),但GB180031有一部分是四字解编码的,故code page 无法真正使用。
USC 两种格式 USC-2(双字节), USC-4(四字节,实际上只用31位,最高位必须为0)
utf-8 以8位为单元对USC进编码(以字节为单元,没有字节序(endian)的问题)
utf-16 以16为单位对USC进行编码,需要知道编码单元的字节序
unicode中标记字节序的方法BOM (bill of mark)
FFFE zero width no-break space, 在USC中不存在(不该出现在实际的传输中)
如果收到 FEFF 表明是 big-endian,如果收到 FFFE 表明是 little-endian
utf-8 不需要 BOM 表明字节序
但可以用BOM来表明编码方式
字符 zero width no-break space 的utf-8是 EF BB BF 故接收者收到 EF BB BF开头的字节流表明是utf-8编码
windows 用BOM标记文本文件的编码方式
字节长度
utf-8 中文(3字节) 英文(1字节)
gbk 每个字符(2字节),中文高位为1
故英文多的站点使用utf-8编码可以节省空间。
@todo
GBK 不用双字节表示, 00-07 是一位于ASCII一致,96个文字,32个控制符号
unicode 将所有文字都用2个字节表示(编码),编码空间为2^8*2^8=65536
释义
endian 字节序
big-endian 大字节序
little-endian 小字节序
参考:
unicode, gbk, utf-8区别:http://www.cnblogs.com/cy163/archive/2007/05/31/766886.html
unicode gbk utf-8的差异的更多相关文章
- unicode,gbk,utfF-8字符编码方式的区别
一.编码历史与区别 一直对字符的各种编码方式懵懵懂懂,什么ANSI UNICODE UTF-8 GB2312 GBK DBCS UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们. ...
- 字符编码-UNICODE,GBK,UTF-8区别【转转】
字符编码介绍及不同编码区别 今天看到这篇关于字符编码的文章,抑制不住喜悦(总结的好详细)所以转到这里来.转自:祥龙之子http://www.cnblogs.com/cy163/archive/2007 ...
- 【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...
- Unicode,GBK,GB2312,UTF-8概念基础(转载)
第一篇:JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础本部分采用重用,转载一篇文章来完成这部分的目标.来源:holen'blog 对字符编码与Unicode,IS ...
- Unicode和UTF的关系
目录结构: contents structure [+] 什么是USC UCS的编码方式 Unicode的来源 为什么需要Unicode Unicode的方式 Unicode和UTF UTF和Unic ...
- Unicode、UTF-8 和 ISO8859-1
Unicode.UTF-8 和 ISO8859-1到底有什么区别 1.本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文" ...
- UTF-8,Unicode,GBK,希腊字母读法,ASCII码表,HTTP错误码,URL编码表,HTML特殊字符,汉字编码简明对照表
UNICODE,GBK,UTF-8区别 UNICODE,GBK,UTF-8区别 简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那 ...
- JAVA字符编码一:Unicode,GBK,GB2312,UTF-8概念基础
第一篇:JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础 来源:holen'blog 对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16, ...
- FATFS外置UNICODE GBK双向转换码表(转)
源:FATFS外置UNICODE GBK双向转换码表 将UtoG,GtoU双向码表放到存储卡里面实现长文件名,因为FATFS长文件名需要unicode支持, 首先将UtoG.sys,GtoU.sys两 ...
随机推荐
- ABP之事件总线(2)
在上一篇文章中,我们复习了一下事件的经典的发布订阅模式,同时对是事件源和时间处理逻辑进行抽象统一,用起来也没有问题.但是还是有很多的问题,比如说我们Handle方法其实是违背了单一性的原则的,里面混杂 ...
- log4j组件的用法(log4j1)
在实际的项目开发和维护中,日志是经常用到的一个内容.遇到问题的时候,经常需要通过日志去查出问题的所在并解决问题. 通常我们会用: System.out.println(xxx); 来打印运行中所需要的 ...
- Django:模型model和数据库mysql(一)
以一个栗子尝试来记录: 两个表存储在数据库中,BookInfo表示书,HeroInfo表示人物.一本书中有多个人物 在MySQL中新建一个数据库Django1,不用创建表,用Django模型来配置数据 ...
- [knowledge][bigdata] nosql
几款主流nosq数据库对比:http://www.cnblogs.com/vajoy/p/5471308.html Redis VS MongoDB:http://www.jianshu.com/p/ ...
- [knowledge][dpdk] open data plane
https://www.opendataplane.org/ https://en.wikipedia.org/wiki/OpenDataPlane odp vs dpdk: http://dpdk ...
- Shell脚本交互之:自动输入密码
Shell脚本交互之:自动输入密码 2016年04月09日 19:41:26 zhangjikuan 阅读数:58208 标签: Shell交互自动输入密码expect重定向管道 更多 个人分类: A ...
- 原生js获取到页面上所有的checkbox
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...
- 1、python同级目录及子目录模块引入
2个模块在同一个包内时(即引入和被引入的2个py文件在同一个目录下),直接引入模块名 1.引入与被引入模块或包在同一目录下时,直接引入模块名或者包名import modulename.py或者impo ...
- 洛谷P4495 奇怪的背包 [HAOI2018] 数论
正解:数论+dp 解题报告: 传送门! 首先看到这题,跳无数次,自然而然可以想到之前考过好几次了的一个结论——如果只考虑无限放置i,它可以且仅可以跳到gcd(p,v[i]) 举一反三一下,如果有多个i ...
- 【PyQt5-Qt Designer】Qt 的标准对话框总结
PyQt5 各种弹出对话框的总结 忙碌了两天才总结完,深刻体会到 “编程在实践中才能领悟更深”,后续有了更多的 理解继续来补充... 效果如下: 参考: https://www.cnblogs.com ...