不知道大家有没有遇到过这种情况,就是打开一个文档的时候,发现文档中的内容全部是乱码,可能有的人知道,这是编码惹的祸。那编码为什么会影响文档内容的显示呢?我是这样理解编码这件事,在计算机中所有数据的原型都是 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%的性能
在数字化浪潮席卷的当下,设计行业正经历着前所未有的深刻变革。从传统的纸质出版物到多元化的数字媒体,从静态的平面设计到动态交互的沉浸式体验,设计的边界不断拓展,对排版软件的要求也水涨船高。高效、智能、多功能的排版软件成为设计师们的迫切需求,它们不仅是创作的得力助手,更是决定作品质量与传播效果的关键因素 ...