GBK编码

码位分配及顺序

GBK 亦采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。

全部编码分为三大部分:

1. 汉字区。包括:
a. GB 2312 汉字区。即 GBK/2: B0A1-F7FE。收录 GB 2312 汉字 6763 个,按原顺序排列。
b. GB 13000.1 扩充汉字区。包括:
(1) GBK/3: 8140-A0FE。收录 GB 13000.1 中的 CJK 汉字 6080 个。
(2) GBK/4: AA40-FEA0。收录 CJK 汉字和增补的汉字 8160 个。CJK 汉字在前,按 UCS 代码大小排列;增补的汉字(包括部首和构件)在后,按《康熙字典》的页码/字位排列。
(3) 汉字“〇”安排在图形符号区GBK/5:A996。

2. 图形符号区。包括:
a. GB 2312 非汉字符号区。即 GBK/1: A1A1-A9FE。其中除 GB 2312 的符号外,还有 10 个小写罗马数字和 GB 12345 增补的符号。计符号 717 个。
b. GB 13000.1 扩充非汉字区。即 GBK/5: A840-A9A0。BIG-5 非汉字符号、结构符和“〇”排列在此区。计符号 166 个。

3. 用户自定义区:分为(1)(2)(3)三个小区。
(1) AAA1-AFFE,码位 564 个。
(2) F8A1-FEFE,码位 658 个。
(3) A140-A7A0,码位 672 个。
第(3)区尽管对用户开放,但限制使用,因为不排除未来在此区域增补新字符的可能性。

字形

GBK 对字形作了如下的规定:
1. 原则上与 GB 13000.1 G列(即源自中国大陆法定标准的汉字)下的字形/笔形保持一致。
2. 在 CJK 汉字认同规则的总框架内,对所有的 GBK 编码汉字实施“无重码正形”(“GB 化”);即在不造成重码的前提下,尽量采用中国新字形。
3. 对于超出 CJK 汉字认同规则的、或认同规则尚未明确规定的汉字,在 GBK 码位上暂安放旧字形。这样,在许多情况下 GBK 收入了同一汉字的新旧两种字形。
4. 非汉字符号的字形,凡 GB 2312 已经包括的,与 GB 2312 保持一致;超出 GB 2312 的部分,与 GB 13000.1 保持一致。
5. 带声调的拼音字母取半角形式。

UTF-8

编码字节数

UTF-8使用1~4字节为每个字符编码:

·一个US-ASCIl字符只需1字节编码(Unicode范围由U+0000~U+007F)。

·带有变音符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文等字母则需要2字节编码(Unicode范围由U+0080~U+07FF)。

·其他语言的字符(包括中日韩文字、东南亚文字、中东文字等)包含了大部分常用字,使用3字节编码。

·其他极少使用的语言字符使用4字节编码。

字符集

UTF-8编码规则:如果只有一个字节则取值为\x00-\x7F。其余字节按长度进行以下拓展:

UTF-8由4种编码方式实现,即UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4 [2] 。其中:

UTF8, 16进制编码表

UTF8-1

\x00-\x7F

UTF8-2

\xC2-\xDF \x80-\xBF

UTF8-3

\xE0 \xA0-\xBF \x80-\xBF

\xE1-\xEC \x80-\xBF \x80-\xBF

\xED \x80-\x9F \x80-\xBF

\xEE-\xEF \x80-\xBF \x80-\xBF

UTF8-4

\xF0 \x90-\xBF \x80-\xBF \x80-\xBF

\xF1-\xF3 \x80-\xBF \x80-\xBF \x80-\xBF

\xF4 \x80-\x8F \x80-\xBF \x80-\xBF

注:每种编码可能有多个编码范围,每个编码范围间,以空格作为每个字节的分隔符。例如UTF8-3的第一个编码,其第一个字节取值必须为\xE0,第二个字节范围为\xA0-\xBF,第三个字节为\x80-\xBF。

ASCLL

表达方式

ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符 [1] 。其中:

0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响  。

32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。

65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。

同时还要注意,在标准ASCII中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1 [1] 。

后128个称为扩展ASCII码。许多基于的系统都支持使用扩展(或“高”)ASCII。扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号。

标准表

ASCII码表部分如下所示:

Bin

(二进制)

Oct

(八进制)

Dec

(十进制)

Hex

(十六进制)

缩写/字符

解释

0000 0000

00

0

0x00

NUL(null)

空字符

0000 0001

01

1

0x01

SOH(start of headline)

标题开始

0000 0010

02

2

0x02

STX (start of text)

正文开始

0000 0011

03

3

0x03

ETX (end of text)

正文结束

0000 0100

04

4

0x04

EOT (end of transmission)

传输结束

0000 0101

05

5

0x05

ENQ (enquiry)

请求

0000 0110

06

6

0x06

ACK (acknowledge)

收到通知

0000 0111

07

7

0x07

BEL (bell)

响铃

0000 1000

010

8

0x08

BS (backspace)

退格

0000 1001

011

9

0x09

HT (horizontal tab)

水平制表符

0000 1010

012

10

0x0A

LF (NL line feed, new line)

换行键

0000 1011

013

11

0x0B

VT (vertical tab)

垂直制表符

0000 1100

014

12

0x0C

FF (NP form feed, new page)

换页键

0000 1101

015

13

0x0D

CR (carriage return)

回车键

0000 1110

016

14

0x0E

SO (shift out)

不用切换

0000 1111

017

15

0x0F

SI (shift in)

启用切换

0001 0000

020

16

0x10

DLE (data link escape)

数据链路转义

0001 0001

021

17

0x11

DC1 (device control 1)

设备控制1

0001 0010

022

18

0x12

DC2 (device control 2)

设备控制2

0001 0011

023

19

0x13

DC3 (device control 3)

设备控制3

0001 0100

024

20

0x14

DC4 (device control 4)

设备控制4

大小规则

常见ASCII码的大小规则:0~9<A~Z<a~z。

1)数字比字母要小。如 “7”<“F”;

2)数字0比数字9要小,并按0到9顺序递增。如 “3”<“8” ;

3)字母A比字母Z要小,并按A到Z顺序递增。如“A”<“Z” ;

4)同个字母的大写字母比小写字母要小32。如“A”<“a” 。

几个常见字母的ASCII码大小: “A”为65;“a”为97;“0”为 48。

URL编码

编码规则

URL编码遵循下列规则: 每对name/value由&;符分开;每对来自表单的name/value由=符分开。如果用户没有输入值给这个name,那么这个name还是出现,只是无值。任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,当然也包括象 =,&;,和 % 这些特殊的字符。其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如“\”,它的ascii码是92,92的十六进制是5c,所以“\”的url编码就是%5c。

编码表

backspace %08

I %49

v %76

ó %D3

tab %09

J %4A

w %77

&Ocirc; %D4

linefeed %0A

K %4B

x %78

&Otilde; %D5

creturn %0D

L %4C

y %79

&Ouml; %D6

space %20

M %4D

z %7A

&Oslash; %D8

! %21

N %4E

{ %7B

ù %D9

" %22

O %4F

| %7C

ú  %DA

# %23

P %50

} %7D

&Ucirc; %DB

$ %24

Q %51

~ %7E

ü %DC

% %25

R %52

¢ %A2

Y %DD

& %26

S %53

£ %A3

T %DE

' %27

T %54

¥ %A5

&szlig; %DF

( %28

U %55

| %A6

à %E0

) %29

V %56

§ %A7

á %E1

* %2A

W %57

&laquo; %AB

a %E2

+ %2B

X %58

&not; %AC

&atilde; %E3

, %2C

Y %59

ˉ %AD

&auml; %E4

- %2D

Z %5A

o %B0

&aring; %E5

. %2E

[ %5B

± %B1

&aelig; %E6

/ %2F

\ %5C

a %B2

&ccedil; %E7

0 %30

] %5D

, %B4

è %E8

1 %31

^ %5E

μ %B5

é %E9

2 %32

_ %5F

&raquo; %BB

ê %EA

3 %33

` %60

&frac14; %BC

&euml; %EB

4 %34

a %61

&frac12; %BD

ì %EC

5 %35

b %62

&iquest; %BF

í %ED

6 %36

c %63

à %C0

&icirc; %EE

7 %37

d %64

á %C1

&iuml; %EF

8 %38

e %65

&Acirc; %C2

e %F0

9 %39

f %66

&Atilde; %C3

&ntilde; %F1

: %3A

g %67

&Auml; %C4

ò %F2

; %3B

h %68

&Aring; %C5

ó %F3

< %3C

i %69

&AElig; %C6

&ocirc; %F4

= %3D

j %6A

&Ccedil; %C7

&otilde; %F5

> %3E

k %6B

è %C8

&ouml; %F6

%3F

l %6C

é  %C9

÷  %F7

@ %40

m %6D

ê %CA

&oslash; %F8

A %41

n %6E

&Euml; %CB

ù %F9

B %42

o %6F

ì  %CC

ú  %FA

C %43

p %70

í %CD

&ucirc; %FB

D %44

q %71

&Icirc; %CE

ü %FC

E %45

r %72

&Iuml; %CF

y %FD

F %46

s %73

D %D0

t %FE

G %47

t %74

&Ntilde; %D1

&yuml; %FF

H %48

u %75

ò %D2

GBK UTF-8 ASCLL URL编码相关推荐

  1. Unicode、UTF 和 ISO-8859-1等编码方式详解与浏览器URL编码

    将字符转换为二进制码的过程,我们称为编码,将二进制码转换为字符的过程,我们称为解码. 编码和解码时所采用的规则,我们称为字符集 常见的字符集: ASCII - 美国人编码,使用7位来对美国常用的字符进 ...

  2. python3编码和解码_python3的url编码和解码,自定义gbk、utf-8的例子

    因为很多时候要涉及到url的编码和解码工作,所以自己制作了一个类,废话不多说 码上见! # coding:utf-8 import urllib.parse class Urlchuli(): &qu ...

  3. python3默认编码_python3的url编码和解码,自定义gbk、utf-8的例子

    因为很多时候要涉及到url的编码和解码工作,所以自己制作了一个类,废话不多说 码上见! # coding:utf-8 import urllib.parse class Urlchuli(): &qu ...

  4. python 解码gbk_Python3的url编码和解码,自定义gbk、utf-8的例子

    今天小编就为大家分享一篇python3的url编码和解码,自定义gbk.utf-8的例子,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 因为很多时候要涉及到url的编码和解码工作,所 ...

  5. python解码gbk_Python的url编码问题(ansi,utf8,gbk) | C/C++程序员之家

    Python的url编码问题(ansi,utf8,gbk). urllib包提供了对url的编码和解码,示例如下: >>> import urllib >>> da ...

  6. URL编码及其其他编码问题

    目录 URL编码 ASCII与拓展的ASCII 显然,有些ASCII可打印字符必须编码才能传输 抓包查看URL编码后的数据 unicode编码.utf-8编码.UCS.UTF ANSI.gb系列.Bi ...

  7. URL编码以及GET和POST提交乱码解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 1.  什么是URL编码. URL编码是一种浏览器用来打包表单输入的格式,浏览器从表单中获取所有的name和其对应的value ...

  8. java中http解析url,java url 编码(解析http请求汉语言地址 )

    java url 编码(解析http请求中文地址 ) 在近在做项目的过程中,由于客户那边服务器上提供的有很多中文结构目录.请求要的地址不能正常运行显示出来.下面来分享一下我对http协议处理请求中文的 ...

  9. url编码混乱下下载工具如何应对

    近来实现了一个Http file server,发现不同浏览器下载文件时url采用的编码是不同的. -------------------------------------------------- ...

最新文章

  1. Python中如何使用构造方法定义类
  2. uboot给内核传参的方式——tag
  3. JavaScript + Thymeleaf + Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(十八)模板脚本
  4. windbg学习.formats--转换成各种进制
  5. 调用支付宝PHP接口API实现在线即时支付功能(UTF-8编码)
  6. gwt-2.8.2下载_GWT 2 Spring 3 JPA 2 Hibernate 3.5教程– Eclipse和Maven 2展示
  7. linux mrtg 命令,linux服务器之流量监控(MRTG)
  8. 一台机器起多个filebeat_机器人开发 | TechX 2020
  9. Web 开发的 JavaScript 框架资料收集(15款)
  10. css居中对齐的几种方式
  11. Vue基础案例-----Todos(1)
  12. 海量大数据地图可视化
  13. udacity深度学习--2. 深度学习简介--LESSON5 Jupyter notebook
  14. Publish/SubScribe(发布/订阅)模式
  15. 分组传送网——LTE/QoS/保护/时钟同步
  16. Cortex-M3内核学习(一)
  17. fidder classic 界面介绍
  18. Vue.js is detected on this page. Devtools inspection is not available becaus...的解决方法
  19. 基于Linux的C++轻量级web服务器/webserver/httpserver——MySQL数据库的使用
  20. 什么是soc?SOC与MCU的区别是什么?

热门文章

  1. MT6763 N1 防误触模式的实现
  2. ps中的用法,切图抠图
  3. 那些你踩过的“坑”,京东金融带你避开
  4. zn5 java 软件_Moto ZN5驱动
  5. WebUploader 上传文件
  6. Linux or Mac 重启网络
  7. python3的基础练习题—速度收藏
  8. 第20课:Neo4j 从入门到构建一个简单知识图谱
  9. 【ACM】poj3041 Asteroids 匈牙利算法
  10. Fragment概念/生命周期/加载/传值 非常具体的一些案例