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的差异的更多相关文章

  1. unicode,gbk,utfF-8字符编码方式的区别

    一.编码历史与区别 一直对字符的各种编码方式懵懵懂懂,什么ANSI UNICODE UTF-8 GB2312 GBK DBCS UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们. ...

  2. 字符编码-UNICODE,GBK,UTF-8区别【转转】

    字符编码介绍及不同编码区别 今天看到这篇关于字符编码的文章,抑制不住喜悦(总结的好详细)所以转到这里来.转自:祥龙之子http://www.cnblogs.com/cy163/archive/2007 ...

  3. 【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础

    这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...

  4. Unicode,GBK,GB2312,UTF-8概念基础(转载)

    第一篇:JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础本部分采用重用,转载一篇文章来完成这部分的目标.来源:holen'blog   对字符编码与Unicode,IS ...

  5. Unicode和UTF的关系

    目录结构: contents structure [+] 什么是USC UCS的编码方式 Unicode的来源 为什么需要Unicode Unicode的方式 Unicode和UTF UTF和Unic ...

  6. Unicode、UTF-8 和 ISO8859-1

    Unicode.UTF-8 和 ISO8859-1到底有什么区别 1.本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文" ...

  7. UTF-8,Unicode,GBK,希腊字母读法,ASCII码表,HTTP错误码,URL编码表,HTML特殊字符,汉字编码简明对照表

    UNICODE,GBK,UTF-8区别 UNICODE,GBK,UTF-8区别    简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那 ...

  8. JAVA字符编码一:Unicode,GBK,GB2312,UTF-8概念基础

    第一篇:JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础 来源:holen'blog   对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16, ...

  9. FATFS外置UNICODE GBK双向转换码表(转)

    源:FATFS外置UNICODE GBK双向转换码表 将UtoG,GtoU双向码表放到存储卡里面实现长文件名,因为FATFS长文件名需要unicode支持, 首先将UtoG.sys,GtoU.sys两 ...

随机推荐

  1. Missing artifact com.h2database:h2:jar:1.4.197

    之前OK的项目再次打开pom上报错: 一起出现的现象: maven库中这个包和H2数据库的包每次项目右键→maven→update project都会产生.lastupdate文件.原来是以前从mav ...

  2. Codeforces 670E - Correct Bracket Sequence Editor - [对顶栈]

    题目链接:https://codeforces.com/contest/670/problem/E 题意: 给出一个已经匹配的括号串,给出起始的光标位置(光标总是指向某个括号). 有如下操作: 1.往 ...

  3. POJ 2449 - Remmarguts' Date - [第k短路模板题][优先队列BFS]

    题目链接:http://poj.org/problem?id=2449 Time Limit: 4000MS Memory Limit: 65536K Description "Good m ...

  4. 区块链共识机制:POW、POS、DPOS、PBFT、POOL

    共识机制作为区块链的关键技术之一,在业务吞吐量.交易速度.不可篡改性.准入门槛等等方面发挥重要的作用. 区块链是去中心化的,没有中心记账节点,所以需要全网对账本达成共识.目前有POW.POS.DPOS ...

  5. 下载文件的协议:HTTP、FTP、P2P

    本篇学习笔记以HTTP.FTP.P2P叙述与网上下载文件有关的协议 需要掌握的要点: 下载一个文件可以使用 HTTP 或 FTP,这两种都是集中下载的方式,而 P2P 则换了一种思路,采取非中心化下载 ...

  6. kafka集群扩容后的topic分区迁移

    https://www.cnblogs.com/honeybee/p/5691921.html kafka集群扩容后,新的broker上面不会数据进入这些节点,也就是说,这些节点是空闲的:它只有在创建 ...

  7. wpf(dispather调度者)

    一.首先为什么要有dispather? wpf程序是有一个主线程多个子线程组成的.主线程负责创建ui界面,数据接收,处理事件,子线程负责处理消耗资源较多耗时的操作.然而子线程不能直接访问主线程那么这个 ...

  8. 转:java内部类作用

    原文地址:https://www.cnblogs.com/uu5666/p/8185061.html 一. 定义 放在一个类的内部的类我们就叫内部类. 二. 作用 1.内部类可以很好的实现隐藏, 一般 ...

  9. Lua: 给 Redis 用户的入门指导(转)

    add by zhj : Lua与Multi/EXEC的功能比较像,在执行过程中,redis不会执行其它命令,这就不会有并发访问的问题, 这是非常好的.但Multi/EXEC要求所有命令都是独立的,后 ...

  10. winform创建快捷方式

    /// <summary> /// 创建快捷方式 /// </summary> public class Lnk { /// <summary> /// 创建快捷方 ...