GBK编码表与编码字库

GBK编码的单字节与双字节
gbk编码分两部分,一部分是单字节编码,另一部分是双字节编码。
gbk编码中,前128个编码都是单字节编码。单字节编码从00-7F,与ASCII相对应。
在单字节编码之后就是双字节编码。第一个字节范围是81-FE。第二字节的一部分领域在40–7E,其他领域在80–FE。
这样可以通过第一个字节就可以判断是单字节编码还是双字节编码。

双字节编码区又分为5部分


范围	    第1字节	第2字节	        编码数	字数    内容
GBK/1	    A1–A9	A1–FE	        846	717     GB2312非汉字符号
GBK/2	    B0–F7	A1–FE	        6,768	6,763   GB2312 汉字
GBK/3	    81–A0	40–FE(7F除外)	6,080	6,080   扩充汉字
GBK/4	    AA–FE	40–A0(7F除外)	8,160	8,160   扩充汉字
GBK/5	    A8–A9	40–A0(7F除外)	192	166     扩充非汉字
用户定义    AA–AF	A1–FE	        564
用户定义    F8–FE	A1–FE	        658
用户定义    A1–A7	40–A0(7F除外)	672
合计:			                23,940	21,886

GBK1-GBK5具体内容
GBK1[GB2312非汉字符号]
GBK2[GB2312 汉字]
GBK3[扩充汉字]
GBK4[扩充汉字]
GBK5[扩充非汉字]

五部分分布示意图:

GBK编码计算方法

$word = mb_convert_encoding("一",'gbk','utf8');
$high = ord($word[0]);
$low = ord($word[1]);
$code = $high*256 + $low;
echo dechex($code);

汉字编码范围
0xB0A1 - 0xF7FE gb2312汉字 GBK2
0x8140 - 0xA0FE 扩充汉字 GBK3
0xAA40 - 0xFEA0 扩充汉字 GBK4

时间: 2024-10-02 15:44:50

GBK编码表与编码字库的相关文章

java IO之 字符流 (字符流 = 字节流 + 编码表) 装饰器模式

字符流 计算机并不区分二进制文件与文本文件.所有的文件都是以二进制形式来存储的,因此, 从本质上说,所有的文件都是二进制文件.所以字符流是建立在字节流之上的,它能够提供字符 层次的编码和解码.列如,在写入一个字符时,Java虚拟机会将字符转为文件指定的编码(默认 是系统默认编码),在读取字符时,再将文件指定的编码转化为字符. 常见的码表如下: ASCII:           美国标准信息交换码.用一个字节的7位可以表示. ISO8859-1:   拉丁码表.欧洲码表,用一个字节的8位表示.又称

HTML语言编码表

语言Language | 编码ISO Code |------- | ------- | Abkhazian| abAfar| aaAfrikaans| afAkan| akAlbanian| sqAmharic| amArabic| arAragonese| anArmenian| hyAssamese |asAvaric |avAvestan| aeAymara |ayAzerbaijani |azBambara| bmBashkir| baBasque| euBelarusian| beB

求一份 C# 所有中文字符编码表.感激不尽

问题描述 如题目 解决方案 解决方案二:不知道如下能不能帮到你:foreach(EncodingInfoedinEncoding.GetEncodings()){encodingNamestr+=ed.DisplayName+"n";} 输出为:IBMEBCDIC(美国-加拿大)OEM美国IBMEBCDIC(国际)阿拉伯字符(ASMO-708)阿拉伯字符(DOS)希腊字符(DOS)波罗的海字符(DOS)西欧字符(DOS)中欧字符(DOS)OEM西里尔语土耳其字符(DOS)OEM多语言拉

URL编码表一览(推荐收藏)_相关技巧

æ 退格TAB换行 回车 空格!"#$%&'()*+,-./ %00%01%02%03%04%05%06%07%08%09%0a%0b%0c%0d%0e%0f%10%11%12%13%14%15%16%17%18%19%1a%1b%1c%1d%1e%1f%20%21%22%23%24%25%26%27%28%29%2a%2b%2c%2d%2e%2f 0123456789: <=>?@A CDEFGHIJKLM O QR TUVWXYZ[\]^_ %30%31%32%33%34

教你制作GBK与Unicode的对照表

前段时间,在所参与的项目中遇到了一个unicode与gb之间转码失败的问题,一些不常用汉字的编码都被转成了"??",这些汉字没有显示出来,于是自己对相关的问题做了一些研究并最终使问题得以解决.现在就结合前面两篇的unicode与GB方面的基本原理,介绍这种制作GBK-Unicode编码对照表的方法. Java的字符串String类功能强大,不但能进行一些基本的字符串操作,还可以根据需要构造指定字符集的字符串,本文所介绍的方法正是利了这一点,这种方法的基本思路是: 1.遍历GBK编码表中

基于python的汉字转GBK码实现代码_python

如图,"广"的编码为%B9%E3,暂且把%B9称为节编码,%E3为字符编码(第二编码). 思路: 从GBK编码页面收集汉字 http://ff.163.com/newflyff/gbk-list/ 从实用角度下手,只选取"● GBK/2: GB2312 汉字"这一节,共3755个汉字. 看规律:小节编码从B0-D7,而针对汉字的编码从A1-FE,即16*6-2=94,非常有规律性. 第一步:把常用的汉字用python提取出来,按顺序存到一个字典文件里面,汉字用空格分

Android数据加密之Base64编码算法的简单实现_Android

前面学习总结了平时开发中遇见的各种数据加密方式,最终都会对加密后的二进制数据进行Base64编码,起到一种二次加密的效果,其实呢Base64从严格意义上来说的话不是一种加密算法,而是一种编码算法,为何要使用Base64编码呢?它解决了什么问题?这也是本文探讨的东西? 什么Base64算法? Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,Base64并不是安全领域的加密算法,其实Base64只能算是一个编码算法,对数据内容进行编码来适合传输.标准Base64编码解码无需额外信

Android数据加密之Base64编码算法的简单实现

前面学习总结了平时开发中遇见的各种数据加密方式,最终都会对加密后的二进制数据进行Base64编码,起到一种二次加密的效果,其实呢Base64从严格意义上来说的话不是一种加密算法,而是一种编码算法,为何要使用Base64编码呢?它解决了什么问题?这也是本文探讨的东西? 什么Base64算法? Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,Base64并不是安全领域的加密算法,其实Base64只能算是一个编码算法,对数据内容进行编码来适合传输.标准Base64编码解码无需额外信

Google搜索客户端API for C/C++

Google 网站上提供了goole search client api for Java和for dot.net的版本,大家可以参考. For C/C++的版本特点如下 内置XML解析器. 内置gbk/utf-8编码/解码器(包含GBK编码表) 采用Pure C编写,采用标准C接口. 支持http代理. 用户需要在http://api.google.com/createkey申请key 演示程序中的key是一个网友给我的,仅供测试用,演示程序中的代理可能连接不上,由于没有设置超时,可能处于等待