pythonmoji编码mobcccc的技术博客

不知道大家有没有遇到过这种情况,就是打开一个文档的时候,发现文档中的内容全部是乱码,可能有的人知道,这是编码惹的祸。那编码为什么会影响文档内容的显示呢?我是这样理解编码这件事,在计算机中所有数据的原型都是 0 或 1(高低电平),只有这样计算机才能正常的解读各类数据,但我们经常输入的是各类字符,并不会是0 1 0 1的输入,那计算机怎么也能正常执行的呢?那是因为在我们输入字符的过程中,有一位翻译官在帮我们将字符翻译成0或1给计算机,而这个翻译官就是编码。

PS:不理解97的可以看下章中的对照表^_^

计算机编码也分为多种,例如常见的ASCII、GB2312、GBK、GB18030、Unicode、Utf-8等,接下来我会逐一的介绍给大家。

ASCII(American Standard Code for Information Interchange,美国标准信息编码)是基于罗马字母表的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最早的单字节编码系统,只能是用8位来表示(1个字节),最多只能表示256个符号,也就是只能概括英文大小写字母、特殊符号和阿拉伯数字。

占位规则:    控制字符和通讯专用字符在第0~31号及第127号(共33个);    阿拉伯数字在第48~57号;    26个大写英文字母在65~90号;    26个小写英文字母在97~122号;    127号之内剩下的是一些标点符号;    128~255号这些位置都没有被占用,是当初预留出来的,这样在每个8位二进制都是以0开头,例如0111 1111;

Bin(二进制)

Oct(八进制)

Dec(十进制)

Hex(十六进制)

缩写/字符

解释

0000 0000

00

NUL(null)

空字符

0000 0001

01

SOH(start of headline)

标题开始

0000 0010

02

STX (start of text)

正文开始

0000 0011

03

ETX (end of text)

正文结束

0000 0100

04

EOT (end of transmission)

传输结束

0000 0101

05

ENQ (enquiry)

请求

0000 0110

06

ACK (acknowledge)

收到通知

0000 0111

07

BEL (bell)

响铃

0000 1000

10

08

BS (backspace)

退格

0000 1001

11

09

HT (horizontal tab)

水平制表符

0000 1010

12

10

0A

LF (NL line feed, new line)

换行键

0000 1011

13

11

0B

VT (vertical tab)

垂直制表符

0000 1100

14

12

0C

FF (NP form feed, new page)

换页键

0000 1101

15

13

0D

CR (carriage return)

回车键

0000 1110

16

14

0E

SO (shift out)

不用切换

0000 1111

17

15

0F

SI (shift in)

启用切换

0001 0000

20

16

10

DLE (data link escape)

数据链路转义

0001 0001

21

17

11

DC1 (device control 1)

设备控制1

0001 0010

22

18

12

DC2 (device control 2)

设备控制2

0001 0011

23

19

13

DC3 (device control 3)

设备控制3

0001 0100

24

20

14

DC4 (device control 4)

设备控制4

0001 0101

25

21

15

NAK (negative acknowledge)

拒绝接收

0001 0110

26

22

16

SYN (synchronous idle)

同步空闲

0001 0111

27

23

17

ETB (end of trans. block)

结束传输块

0001 1000

30

24

18

CAN (cancel)

取消

0001 1001

31

25

19

EM (end of medium)

媒介结束

0001 1010

32

26

1A

SUB (substitute)

代替

0001 1011

33

27

1B

ESC (escape)

换码(溢出)

0001 1100

34

28

1C

FS (file separator)

文件分隔符

0001 1101

35

29

1D

GS (group separator)

分组符

0001 1110

36

30

1E

RS (record separator)

记录分隔符

0001 1111

37

31

1F

US (unit separator)

单元分隔符

0010 0000

40

32

20

(space)

空格

0010 0001

41

33

21

叹号

0010 0010

42

34

22

双引号

0010 0011

43

35

23

井号

0010 0100

44

36

24

美元符

0010 0101

45

37

25

百分号

0010 0110

46

38

26

&

和号

0010 0111

47

39

27

闭单引号

0010 1000

50

40

28

开括号

0010 1001

51

41

29

闭括号

0010 1010

52

42

2A

星号

0010 1011

53

43

2B

加号

0010 1100

54

44

2C

逗号

0010 1101

55

45

2D

减号/破折号

0010 1110

56

46

2E

句号

00101111

57

47

2F

斜杠

00110000

60

48

30

数字0

00110001

61

49

31

数字1

00110010

62

50

32

数字2

00110011

63

51

33

数字3

00110100

64

52

34

数字4

00110101

65

53

35

数字5

00110110

66

54

36

数字6

00110111

67

55

37

数字7

00111000

70

56

38

数字8

00111001

71

57

39

数字9

00111010

72

58

3A

冒号

00111011

73

59

3B

分号

00111100

74

60

3C

<

小于

00111101

75

61

3D

等号

00111110

76

62

3E

>

大于

00111111

77

63

3F

问号

01000000

100

64

40

电子邮件符号

01000001

101

65

41

大写字母A

01000010

102

66

42

大写字母B

01000011

103

67

43

大写字母C

01000100

104

68

44

大写字母D

01000101

105

69

45

大写字母E

01000110

106

70

46

大写字母F

01000111

107

71

47

大写字母G

01001000

110

72

48

大写字母H

01001001

111

73

49

大写字母I

01001010

112

74

4A

大写字母J

01001011

113

75

4B

大写字母K

01001100

114

76

4C

大写字母L

01001101

115

77

4D

大写字母M

01001110

116

78

4E

大写字母N

01001111

117

79

4F

大写字母O

01010000

120

80

50

大写字母P

01010001

121

81

51

大写字母Q

01010010

122

82

52

大写字母R

01010011

123

83

53

大写字母S

01010100

124

84

54

大写字母T

01010101

125

85

55

大写字母U

01010110

126

86

56

大写字母V

01010111

127

87

57

大写字母W

01011000

130

88

58

大写字母X

01011001

131

89

59

大写字母Y

01011010

132

90

5A

大写字母Z

01011011

133

91

5B

开方括号

01011100

134

92

5C

反斜杠

01011101

135

93

5D

闭方括号

01011110

136

94

5E

脱字符

01011111

137

95

5F

下划线

01100000

140

96

60

开单引号

01100001

141

97

61

小写字母a

01100010

142

98

62

小写字母b

01100011

143

99

63

小写字母c

01100100

144

100

64

小写字母d

01100101

145

101

65

小写字母e

01100110

146

102

66

小写字母f

01100111

147

103

67

小写字母g

01101000

150

104

68

小写字母h

01101001

151

105

69

小写字母i

01101010

152

106

6A

小写字母j

01101011

153

107

6B

小写字母k

01101100

154

108

6C

小写字母l

01101101

155

109

6D

小写字母m

01101110

156

110

6E

小写字母n

01101111

157

111

6F

小写字母o

01110000

160

112

70

小写字母p

01110001

161

113

71

小写字母q

01110010

162

114

72

小写字母r

01110011

163

115

73

小写字母s

01110100

164

116

74

小写字母t

01110101

165

117

75

小写字母u

01110110

166

118

76

小写字母v

01110111

167

119

77

小写字母w

01111000

170

120

78

小写字母x

01111001

171

121

79

小写字母y

01111010

172

122

7A

小写字母z

01111011

173

123

7B

开花括号

01111100

174

124

7C

垂线

01111101

175

125

7D

闭花括号

01111110

176

126

7E

波浪号

01111111

177

127

7F

DEL (delete)

删除

GB2312(信息交换用汉字编码字符集.基本集)又称为GB2312-80字符集,由原中国国家标准总局发布,覆盖99.75%的简体中文汉字,没有覆盖到繁体中文字。GB2312中简体中文用16位表示(2个字节),半角下的英文字母和数字用8位表示(1个字节),全角下的英文字母和数字用16位表示(2个字节)。

GBK字节集是在GB2312的扩展版,扩展了繁体中文字的支持,完全兼容GB2312编码。GBK也是简繁体中文用16位表示(2个字节),半角下的英文字母和数字用8位表示(1个字节),全角下的英文字母和数字用16位表示(2个字节)。

Unicode字符集编码是(Universal Multiple-Octet Coded Character Set,通用多八位编码字符集)简称为UCS,支持世界上超过650种语言的国际字符集。     UCS-2标准:规定一个字符必须是2个字节存储,大于2个字节的,需要用UCS-4标准。     UCS-4标准:规定一个字符全部用4个字节存储。

Utf-8是Unicode压缩和优化版本,其中ASCII码中的内容在utf-8中占用1个字节保存、欧洲字符在utf-8中占用2个字节保存,东南亚字符在utf-8中占用3个字节保存,辅助平面字符则使用4字节。  还有Utf-16和Utf-32编码,utf-8最少用一个字节去表示,utf-16最少用两个字节去表示。

1bit    x    8    =    1bytes

1bytes    x    1024    =    1KB

1KB    x    1024    =    1MB

1MB    x    1024    =    1GB

1GB    x    1024    =    1TB

1TB    x    1024    =    1PB

1PB    x    1024    =    1EB

1EB    x    1024    =    1ZB

1ZB    x    1024    =    1YB

引用知乎上“余洋”文档的介绍,下面是详细内容供大家参考。

1)中国人民通过对 ASCII 编码的中文扩充改造,产生了 GB2312 编码,可以表示6000多个常用汉字。  2)汉字实在是太多了,包括繁体和各种字符,于是产生了 GBK 编码,它包括了 GB2312 中的编码,同时扩充了很多。  3)中国是个多民族国家,各个民族几乎都有自己独立的语言系统,为了表示那些字符,继续把 GBK 编码扩充为 GB18030 编码。  4)每个国家都像中国一样,把自己的语言编码,于是出现了各种各样的编码,如果你不安装相应的编码,就无法解释相应编码想表达的内容。  5)终于,有个叫 ISO 的组织看不下去了。他们一起创造了一种编码 UNICODE ,这种编码非常大,大到可以容纳世界上任何一个文字和标志。所以只要电脑上有 UNICODE 这种编码系统,无论是全球哪种文字,只需要保存文件的时候,保存成 UNICODE 编码就可以被其他电脑正常解释。  6)UNICODE 在网络传输中,出现了两个标准 UTF-8 和 UTF-16,分别每次传输 8个位和 16个位。于是就会有人产生疑问,UTF-8 既然能保存那么多文字、符号,为什么国内还有这么多使用 GBK 等编码的人?因为 UTF-8 等编码体积比较大,占电脑空间比较多,如果面向的使用人群绝大部分都是中国人,用 GBK 等编码也可以。

需求提示#在____________上补充代码#不要修改其他代码f = input("请输入一个单词:")print("{}".format("____________"))print("____________".format(f))

需求提示#在____________上补充代码#不要修改其他代码def vfun(x,b):____________:x += ____________return xlc = ____________print(vfun(10,lc))

⼀. 小数据池在说小数据池之前. 我们先看⼀个概念. 什么是代码块:根据提示我们从官⽅⽂档找到了这样的说法:A Python program is constructed from code blocks. A block is a piece of Python program text that is executed as a unit. The following are bloc

# Python Emoji 编码存储在现代社交网络和沟通中,emoji 表情符号已经成为一种重要的交流工具。无论是在短信、社交媒体还是其他在线平台,emoji 提供了丰富的表达方式。对于软件开发者来说,如何在应用中有效地存储和处理这些表情符号是一项需要关注的问题。本文将探讨在 Python 中如何编码和存储 emoji,涵盖相关代码示例,并通过图示进一步说明其原理和关系。## 什么是 E

## Java Emoji 编码在现代通讯中,表情符号(emoji)已经成为人们交流中不可或缺的一部分。在 Java 编程中,我们经常需要处理包含表情符号的文本数据。然而,由于表情符号并不是标准的 ASCII 字符,因此在处理过程中可能会遇到一些问题。本文将介绍如何在 Java 中正确地处理和编码 emoji。### Emoji 表示在 Unicode 标准中,表情符号是通过特定的 U

GitHub Flavored Markdown今天研究了一天Markdown移动端和pc端统一实现方式,由于以前有搞过移动端富文本编辑器,搞Markdown简单多了;其中GFM的表情语法不错,比如笑脸?,准备采用一下。又想到了手机输入法输入表情浏览器页面接收到的是一个字符,如果能转换成?就更能统一表现了,就像微信Android怎么输入输入法里面奇丑的emoji到了微信里面都是微信自带的好看的e

之前对emoji没怎么关注过,只有大约印象和编码有关,今天花了一点时间去看了一下emoji如何编码的。 先贴个知乎回答-Unicode 和 UTF-8 有什么区别? - 邱昊宇的回答 - 知乎 里面涉及两个概念:字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point)编码规则:将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)unic

01、前言Emoji 在我们生活中真的是越来越常见了,几乎每次发消息的时候不带个 Emoji,总觉得少了点什么,似乎干巴巴的文字已经无法承载我们丰富的感情了。对于我们开发者来说,如何将 Emoji 存入 MySql 数据库或者取出来,就变成了一种必须掌握的技能了。Emoji 是一种图形符号,能够很直观地反应出某种文字含义。它让我想起远古时代的象形文字。Emoji 其实是一个日语词(えもじ),E 表

emoji 编码规则介绍简介emoji 来源于日语中的 絵 (e) 文字 (moji),起源于 1999 年日本手机(也有说在1994年的寻呼机中已经在使用了)。当时手机制造商 DoCoMo 建议把 emoji 加入 unicode 标准,但因未被广泛使用而被拒绝。后来 emoji 在日本开始流行,但不同手机商使用了不同的 emoji 集合,编码上也存在重叠。不同设备之间 emoji 的显示存在问

一般情况下,我们会设置MySQL默认的字符编码为utf8,但是近些年来,emoji表情的火爆使用,给数据库带来了意外的错误,就是emoji的字符集已经超出了utf8的编码范畴?令人抓狂的字符编码问题谈到字符编码问题,会让很多人感到头疼,这里不在深究各个字符编码的特点和理论,这里只说下Unicode和utf8字符编码的关系 Unicode是编码字符集,而UTF-8就是字符编码,即Unicode规则

文章目录 一、前言 二、安装和使用 1. 安装 2. 两个函数 三、实践 四、结语 一、前言 在这个各种表情包横行的时代,emoji表情依然占据了一定的地位! 这篇文章将带你了解一下,python与 emoji 表情之间的会有怎样的联系! 有时候在代码中加入一些有趣的操作可以使得友好度上升好几个Level,正好了解到 Python 支持 emoji 表情的输出,实现方式相当简单。表情符号和社交媒体

GitHub Flavored Markdown今天研究了一天Markdown移动端和pc端统一实现方式,由于以前有搞过移动端富文本编辑器,搞Markdown简单多了; 其中GFM的表情语法不错,比如笑脸:smile:,准备采用一下。又想到了手机输入法输入表情浏览器页面接收到的是一个字符,如果能转换成:smile:就更能统一表现了,就像微信Android怎么输入输入法里面奇丑的emoji到了微信

emoji表情是啥就不具体介绍了,主要记住一点就是emoji是使用4字节来表示的,具体的unicode码可以查看这里,所以在显示存储的时候就跟普通的字符大有不同。项目中原先没有考虑到emoji表情的存在,导致问题的出现,在存储时,使用的字符编码集就是utf-8编码,utf-8编码虽然是使用1-6个变长子节表示的,但是在mysql中是使用3子节表示的,刚好没发表示emoji表情,处理方

关于IOS emoji表情的编码问题是这样的,IOS4.0以前emoji采用的是SoftBank的那套编码,叫做SB_Unicode, 而且IOS5时,emoji被放进了Unicode6.0, 此后IOS采用的是Unicode编码,为了在新老IOS应用程序(如微信,我们在做的人人的私信)之间传递emoji表情,就必须在后台做一个编码的转换,苹果系统自带的iMessage当然自己在后台或是前台完成了

Emoji,这些能够表达情感的小卡通图像已经成为现代交流中不可或缺的一部分,以至于emoji这一单词已经在2015年被正式收入韦氏词典和牛津词典。说到emoji的诞生,这里还有一个很有趣的小故事:1999年前后,日本一个名叫栗田穰崇的年轻人,和许多直男一样, 给女友发的短信经常会被误解。比如,“知道了”被解读成“生气了”、“不耐烦了”,随后引发冷战。 于是少年栗田想:“如果能在文字里插入一些表情符

一个Emoji的趣闻我看过一篇关于Emoji的文章,特别有意思,里面提到了Emoji是怎么诞生的。1999年前后,日本一个名叫栗田穰崇的年轻人,和许多直男一样, 给女友发的短信经常会被误解。比如,“知道了”被解读成“生气了”、“不耐烦了”,随后引发冷战。 于是少年栗田想:“如果能在文字里插入一些表情符号来表达感情,大家应该会需要吧!”原始的Emoji就这么诞生了。Emoji极大地丰富了我们的生活和

一个不可否认的事实就是,存再多奇奇怪怪的表情包,你用得最顺手还是emoji本ji。EyeOpener今日话题,emoji发家史。谁创造了Emoji?为了让发信息这件事变得更有趣,从而拉拢年轻用户。1999年,在日本移动通信公司NTT Docomo(都科摩)工作的栗田穰(rang二声)崇,推出了一套表情符号,包含上百个emoji。谁在管理Emoji?早期emoji用户,经常被一个问题困扰,那就是当你

一 疑问什么是Emoji,跟Unicode什么关系,要搞懂emoji为什么要先理解Unicode?什么是Unicode,跟ASCII什么关系?大端序小端序是什么概念?哪些机器用大端序,哪些机器用小端序、什么是编码?什么是码表?Java用的是什么编码?二 编码字符集和字符编码表编码字符集 (Coded Character Set 即 CCS) 编码字符集的概念就是,给现实世界中的字符,对应的映射一个

PEFT方法,例如,LoRA、DoRA和prefix-tuning,侧重于修改模型的权重或引入额外的权重矩阵。PEFT 方法如 LoRA 专注于减少可训练参数的数量,并更新模型权重的一小部分以适应模型。在 PEFT 中,变化是在序列中单个标记的表示上进行的。ReFT 受到对可解释性研究的影响,该研究在时间上重复使用表示,并直接编辑其中的一小部分。它使用编码在这样表示中的强大语义信息来调整模型。这些是针对特定任务的改变,是对表示的干预。您会注意到可训练的参数非常少,仅占模型总参数数量的 0.0004%。

随着 RustFS 的持续走热,越来越多的用户开始关注并使用 RustFS,而且在整个过程中提出了很多关键问题。其中在 Start the container using a non-root user #804 中,whg517 用户提出,从安全最佳实践角度出发,RustFS 在容器化运行状态下( ...

前端JavaScript访问MSSQL Server数据表方式 在前端JavaScript中直接连接数据库是不安全的,通常需要通过后端API进行数据访问。以下是几种常见的前后端数据交互方式: 1. RESTful API (推荐) 前端代码示例 <!DOCTYPE html> <html lang= ...

作者:Mostafa Ibrahim编译:ronghuaiyang导读使用EfficientNet和YoloV5的融合可以提升20%的performance。在本文中,我将解释上一篇文章中称之为“2 class filter”的概念。这是一种用于目标检测和分类模型的综合技术,在过去几周我一直在做的Kaggle比赛中被大量使用。几乎所有参加比赛的人都使用了这种技术,它似乎可以提高大约5-25%的性能

在数字化浪潮席卷的当下,设计行业正经历着前所未有的深刻变革。从传统的纸质出版物到多元化的数字媒体,从静态的平面设计到动态交互的沉浸式体验,设计的边界不断拓展,对排版软件的要求也水涨船高。高效、智能、多功能的排版软件成为设计师们的迫切需求,它们不仅是创作的得力助手,更是决定作品质量与传播效果的关键因素 ...

THE END