当前位置: 首页 > news >正文

25.9.13 字符编码标准

ASCII标准

十进制
  DEC

八进制
  OCT

十六进制
  HEX

二进制
  BIN

符号
  Symbol

中文解释
  Description

0

000

00

00000000

NUL

空字符

1

001

01

00000001

SOH

标题开始

2

002

02

00000010

STX

正文开始

3

003

03

00000011

ETX

正文结束

4

004

04

00000100

EOT

传输结束

5

005

05

00000101

ENQ

询问

6

006

06

00000110

ACK

收到通知

7

007

07

00000111

BEL

8

010

08

00001000

BS

退格

9

011

09

00001001

HT

水平制表符

10

012

0A

00001010

LF

换行键

11

013

0B

00001011

VT

垂直制表符

12

014

0C

00001100

FF

换页键

13

015

0D

00001101

CR

回车键

14

016

0E

00001110

SO

移出

15

017

0F

00001111

SI

移入

16

020

10

00010000

DLE

数据链路转义

17

021

11

00010001

DC1

设备控制 1

18

022

12

00010010

DC2

设备控制 2

19

023

13

00010011

DC3

设备控制 3

20

024

14

00010100

DC4

设备控制 4

21

025

15

00010101

NAK

拒绝接收

22

026

16

00010110

SYN

同步空闲

23

027

17

00010111

ETB

传输块结束

24

030

18

00011000

CAN

取消

25

031

19

00011001

EM

介质中断

26

032

1A

00011010

SUB

替换

27

033

1B

00011011

ESC

换码符

28

034

1C

00011100

FS

文件分隔符

29

035

1D

00011101

GS

组分隔符

30

036

1E

00011110

RS

记录分离符

31

037

1F

00011111

US

单元分隔符

十进制
  DEC

八进制
  OCT

十六进制
  HEX

二进制
  BIN

符号
  Symbol

中文解释
  Description

32

040

20

00100000

 

空格

33

041

21

00100001

!

感叹号

34

042

22

00100010

"

双引号

35

043

23

00100011

#

井号

36

044

24

00100100

$

美元符

37

045

25

00100101

%

百分号

38

046

26

00100110

&

39

047

27

00100111

'

单引号

40

050

28

00101000

(

左括号

41

051

29

00101001

)

右括号

42

052

2A

00101010

*

星号

43

053

2B

00101011

+

加号

44

054

2C

00101100

,

逗号

45

055

2D

00101101

-

连字号或减号

46

056

2E

00101110

.

句点或小数点

47

057

2F

00101111

/

斜杠

48

060

30

00110000

0

0

49

061

31

00110001

1

1

50

062

32

00110010

2

2

51

063

33

00110011

3

3

52

064

34

00110100

4

4

53

065

35

00110101

5

5

54

066

36

00110110

6

6

55

067

37

00110111

7

7

56

070

38

00111000

8

8

57

071

39

00111001

9

9

58

072

3A

00111010

:

冒号

59

073

3B

00111011

;

分号

60

074

3C

00111100

小于

61

075

3D

00111101

=

等号

62

076

3E

00111110

大于

63

077

3F

00111111

?

问号

64

100

40

01000000

@

电子邮件符号

65

101

41

01000001

A

大写字母 A

66

102

42

01000010

B

大写字母 B

67

103

43

01000011

C

大写字母 C

68

104

44

01000100

D

大写字母 D

69

105

45

01000101

E

大写字母 E

70

106

46

01000110

F

大写字母 F

71

107

47

01000111

G

大写字母 G

72

110

48

01001000

H

大写字母 H

73

111

49

01001001

I

大写字母 I

74

112

4A

01001010

J

大写字母 J

75

113

4B

01001011

K

大写字母 K

76

114

4C

01001100

L

大写字母 L

77

115

4D

01001101

M

大写字母 M

78

116

4E

01001110

N

大写字母 N

79

117

4F

01001111

O

大写字母 O

80

120

50

01010000

P

大写字母 P

81

121

51

01010001

Q

大写字母 Q

82

122

52

01010010

R

大写字母 R

83

123

53

01010011

S

大写字母 S

84

124

54

01010100

T

大写字母 T

85

125

55

01010101

U

大写字母 U

86

126

56

01010110

V

大写字母 V

87

127

57

01010111

W

大写字母 W

88

130

58

01011000

X

大写字母 X

89

131

59

01011001

Y

大写字母 Y

90

132

5A

01011010

Z

大写字母 Z

91

133

5B

01011011

[

左中括号

92

134

5C

01011100

 

反斜杠

93

135

5D

01011101

]

右中括号

94

136

5E

01011110

^

音调符号

95

137

5F

01011111

_

下划线

96

140

60

01100000

`

重音符

97

141

61

01100001

a

小写字母 a

98

142

62

01100010

b

小写字母 b

99

143

63

01100011

c

小写字母 c

100

144

64

01100100

d

小写字母 d

101

145

65

01100101

e

小写字母 e

102

146

66

01100110

f

小写字母 f

103

147

67

01100111

g

小写字母 g

104

150

68

01101000

h

小写字母 h

105

151

69

01101001

i

小写字母 i

106

152

6A

01101010

j

小写字母 j

107

153

6B

01101011

k

小写字母 k

108

154

6C

01101100

l

小写字母 l

109

155

6D

01101101

m

小写字母 m

110

156

6E

01101110

n

小写字母 n

111

157

6F

01101111

o

小写字母 o

112

160

70

01110000

p

小写字母 p

113

161

71

01110001

q

小写字母 q

114

162

72

01110010

r

小写字母 r

115

163

73

01110011

s

小写字母 s

116

164

74

01110100

t

小写字母 t

117

165

75

01110101

u

小写字母 u

118

166

76

01110110

v

小写字母 v

119

167

77

01110111

w

小写字母 w

120

170

78

01111000

x

小写字母 x

121

171

79

01111001

y

小写字母 y

122

172

7A

01111010

z

小写字母 z

123

173

7B

01111011

{

左大括号

124

174

7C

01111100

|

垂直线

125

175

7D

01111101

}

右大括号

126

176

7E

01111110

~

波浪号

127

177

7F

01111111

 

删除

Unicode

编码原则:U+0000到U+10FFFF中的数

(U+为Unicode代码点的前缀,数字为16进制)

UTF(Unicode Transfomation Format)是Unicode的转换格式,分为UTF-8,UTF-16和UTF-32三种

UTF-8是一种变长的编码,使用1到4个字节表示一个代码点。

编码原则:

第一步:确定代码点范围

代码点范围

(十六进制)

代码点范围

(十进制)

UTF-8字节序列

(二进制)

0000-007F

0-127

0xxxxxxx

0080-07FF

128-2047

110xxxxx 10xxxxxx

0800-FFFF

2048-65535

1110xxxx 10xxxxxx 10xxxxxx

10000-10FFFF

65536-1114111

11110xxx 10xxxxxx

10xxxxxx 10xxxxxx

第二步:将代码点的二进制位填入模板中的x

(左右相对顺序不变,从最低位依次开始向高位填充,不足处补零)

第三步:将得到的二进制序列转换为16进制

UTF-8编码的设计原理(1110xxxx等):

  1. 代表内部字节长度(0xxxxxxx为1字节,110xxxxx有两个1,为2字节,以此类推)
  2. 消除歧义,明确编码开端(10xxxxxx为中间字节段,而其他可作为字符开始)
  3. 兼容ASC2的文本(1字节为0开头,与0-127的纯ASC2文本兼容)

UTF-16

也是一种2到4字节的变长编码

需要注意字节序(十六进制)

BE(Big-Endian,UTF-16BE):最高有效字节在前

LE(Little-Endian,UTF-16LE):最低有效字节在前

编码原则(对于代码点u)

第一步:判断代码点范围

若u在U+0000到U+FFFF之间,直接使用对应的二进制编码;

若u在U+10000到U+10FFFF,需要使用代理对

第二步:代理对的计算

1、令u’=u-0x10000,则u’的范围是0x00000到0xFFFFF(共20位长)之间

2、将u’分为前十位(High10)和后十位(Low10)

3、加上偏移量

H=High10+0xD800 L=Low10+0xDC00

  1. 将H和L(16进制)按两位分别拆开,得到UTF-16编码

BOM(byte order mark)在文件开头标识字节序

FE FF——BE

FF FE——LE

UTF-32(根据Unicode标准,在0x110000及以后的字符无效)

直接采用固定的4个字节表示整个代码点

与UCS-4基本一致

也需要注意字节序(十六进制)

BE(Big-Endian,UTF-32BE):最高有效字节在前

LE(Little-Endian,UTF-32LE):最低有效字节在前

如U+1F4A9——00 01 F4 A9(16进制)

BE:00 01 F4 A9

LE:A9 F4 01 00

特性

Unicode

UCS (Universal Coded Character Set)

制定组织

Unicode 联盟 (一个行业协会)

国际标准化组织 (ISO) 和 国际电工委员会 (IEC)

本质

一套完整的标准,包括字符集、编码方案、算法等。

primarily 一个字符集标准(即 ISO/IEC 10646)。

范围

更广泛。不仅定义了字符集,还定义了如何编码(如UTF-8, UTF-16)、排序规则双向文本显示等。

相对狭义。主要关注为每个字符分配一个唯一的编号(码位)

编码方式

有多种Unicode转换格式(UTFs),如 UTF-8, UTF-16, UTF-32。

UCS-2UCS-4编码,但它们现在基本被Unicode的UTF编码所取代。

关系

实践和应用层面的工业标准

理论和国际标准层面的字符集定义

http://www.wxhsa.cn/company.asp?id=2890

相关文章:

  • 哭了,散了,明白了
  • 用 Java 和 Tesseract 实现验证码识别
  • Microsoft-Activation-Scripts,好用,记录一下。
  • 双重map 的赋值初始化
  • 0voice-1.4.1
  • 9.13 模拟赛 T3
  • Docker应用 - FileBrowser
  • AI踩坑之Nlog使用
  • 论文解读-《OpenGSL A Comprehensive Benchmark for Graph Structure Learning》 - zhang
  • Cmake介绍
  • Git 生成 ssh key
  • 基础篇:消息队列理论部分,另一种环境搭建Docker运行RabbitMQ
  • 项目案例作业1:学生信息管理系统(面向对象初步接触)
  • P1097 合唱队形
  • 一生一芯学习:pa2.1 RTFM
  • Linux网络:初识网络 - 详解
  • 20250909比赛总结
  • 又寸入生白勺司烤
  • Ubuntu 安装 GIPM
  • 手动下载vscode扩展的方法
  • GAS_Aura-Aura Projectile
  • CF1583F Defender of Childhood Dreams
  • scrollArea无法滚动
  • 时间序列分析(1)
  • 一行代码没写,做了一个小程序
  • 【置顶】欢迎来到 ziyaojia 的主页
  • copyparty 是一款使用单个 Python 材料实现的内网文件共享软件,具有跨平台、低资源占用等特点,适合需要本地化文件管理的场景
  • ZYNQ Ultrascale+系列部署yolo v10(暂定,若过于艰难则考虑降级或FQ)
  • 【EF Core】再谈普通实体关系与 Owned 关系的区别
  • qoj6104 Building Bombing