ASCII码对照表【2024年汇总】

avatar
作者
筋斗云
阅读量:18

🍺ASCII相关文章汇总如下🍺:

文章目录

1、简介

ASCII(发音:,American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语,而其扩展版本延伸美国标准信息交换码则可以部分支持其他西欧语言,并等同于国际标准ISO/IEC 646。

ASCII 由电报码发展而来。第一版标准发布于1963年 ,1967年经历了一次主要修订[5][6],最后一次更新则是在1986年,至今为止共定义了128个字符;其中33个字符无法显示(一些终端提供了扩展,使得这些字符可显示为诸如笑脸、扑克牌花式等8-bit符号),且这33个字符多数都已是陈废的控制字符。控制字符的用途主要是用来操控已经处理过的文字。在33个字符之外的是95个可显示的字符。用键盘敲下空白键所产生的空白字符也算1个可显示字符(显示为空白)。

  • 1、ASCII码 是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646 。在这个页面,你可以找到8位的256个字符、ASCII码表和Windows-1252 (code page 1252,它是国际标准ISO 8859-1的一个扩展字符集) 标准保持一致;
  • 2、ASCII码 是 American Standard Code for Information Interchange 的缩写,而不是ASCⅡ(罗马数字2),有很多人在这个地方产生误解;
  • 3、ASCII码 规范于1967年第一次发布,最后一次更新是在1986年,它包含了33个控制字符(具有某些特殊功能但是无法显示的字符)和95个可显示字符;

ASCII ,它的全称是"美国信息交换标准代码"。它设计于60年代早期,是计算机和诸如打印机、磁带驱动器之类的硬件设备的标准字符集。
ASCII 是 7 比特字符集,包含了 128 个不同的字符值。
ASCII 支持 0-9 的数字,A-Z大写和小写英文字母,以及一些特殊字符。
被广泛使用于现代计算机、HTML和因特网上的字符集都是基于 ASCII 。

ASCII英文全称:American Standard Code for Information Interchange,即:美国信息交换标准代码,是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,1986年定义了常用的128个字符。
ASCII码对照表中文发音为阿斯克码表,标准ASCII码表通常作为各种符号的16进制对照表使用,但通常讲的ASCII码其实是指ASCII码的十进制值。比如:字母a的ascii码值为97,空格的ascii码值为32。

这里汇集了最完整的ASCII码对照表,包含32个字符的ASCII控制字符对照表(即非打印字符对照表)、96个字符的ASCII打印字符对照表、128个字符的ASCII扩展字符对照表。覆盖了常用的128个字符和128个扩展字符。常用的128个字符,对应ASCII十六进制编码范围为0x00-0x7F,即十进制的0-127,包含32个非打印控制字符和96个打印字符,打印字符包括可显示字符(数字、字母、符号)和空格及删除命令。

2、表格形式

0~31 之间的ASCII码常用于控制像打印机一样的外围设备。

十进制
DEC
八进制
OCT
十六进制
HEX
二进制
BIN
符号
Symbol
HTML
实体编码
中文解释
Description
英文解释
Description
00000000000000NUL�空字符 终止符Null char
10010100000001SOH标题开始Start of Heading
20020200000010STX正文开始Start of Text
30030300000011ETX正文结束End of Text
40040400000100EOT传输结束End of Transmission
50050500000101ENQ询问Enquiry
60060600000110ACK收到通知Acknowledgment
70070700000111BELBell
80100800001000 BS退格Back Space
90110900001001 HT	水平制表符Horizontal Tab
100120A00001010 LF
换行符 \nLine Feed
110130B00001011 VT垂直制表符Vertical Tab
120140C00001100 FF换页符Form Feed
130150D00001101 CR
回车符 \rCarriage Return
140160E00001110 SO移出Shift Out / X-On
150170F00001111 SI移入Shift In / X-Off
160201000010000DLE数据链路转义Data Line Escape
170211100010001DC1设备控制 1Device Control 1 (oft. XON)
180221200010010DC2设备控制 2Device Control 2
190231300010011DC3设备控制 3Device Control 3 (oft. XOFF)
200241400010100DC4设备控制 4Device Control 4
210251500010101NAK拒绝接收Negative Acknowledgement
220261600010110SYN同步空闲Synchronous Idle
230271700010111ETB传输块结束End of Transmit Block
240301800011000CAN取消Cancel
250311900011001 EM介质中断End of Medium
260321A00011010SUB替换Substitute
270331B00011011ESC换码符Escape
280341C00011100 FS文件分隔符File Separator
290351D00011101 GS组分隔符Group Separator
300361E00011110 RS记录分离符Record Separator
310371F00011111 US单元分隔符Unit Separator
十进制 32~127 区间一共 127-32+1=96 个ASCII码表示的符号,在我们的键盘上都可以被找到。其中:32表示空格,127表示删除命令。
十进制
DEC
八进制
OCT
十六进制
HEX
二进制
BIN
符号
Symbol
HTML
实体编码
中文解释
Description
英文解释
Description
320402000100000  空格Space
330412100100001!!感叹号Exclamation mark
340422200100010""双引号Double quotes (or speech marks)
350432300100011##井号Number
360442400100100$$美元符Dollar
370452500100101%%百分号Per cent sign
380462600100110&&Ampersand
390472700100111''单引号Single quote
400502800101000((左括号Open parenthesis (or open bracket)
410512900101001))右括号Close parenthesis (or close bracket)
420522A00101010**星号Asterisk
430532B00101011++加号Plus
440542C00101100,,逗号Comma
450552D00101101--连字号或减号Hyphen
460562E00101110..句点或小数点Period, dot or full stop
470572F00101111//斜杠Slash or divide
480603000110000000Zero
490613100110001111One
500623200110010222Two
510633300110011333Three
520643400110100444Four
530653500110101555Five
540663600110110666Six
550673700110111777Seven
560703800111000888Eight
570713900111001999Nine
580723A00111010::冒号Colon
590733B00111011;&#059;分号Semicolon
600743C00111100<&#060;小于Less than (or open angled bracket)
610753D00111101=&#061;等号Equals
620763E00111110>&#062;大于Greater than (or close angled bracket)
630773F00111111?&#063;问号Question mark
641004001000000@&#064;电子邮件符号At symbol
651014101000001A&#065;大写字母 AUppercase A
661024201000010B&#066;大写字母 BUppercase B
671034301000011C&#067;大写字母 CUppercase C
681044401000100D&#068;大写字母 DUppercase D
691054501000101E&#069;大写字母 EUppercase E
701064601000110F&#070;大写字母 FUppercase F
711074701000111G&#071;大写字母 GUppercase G
721104801001000H&#072;大写字母 HUppercase H
731114901001001I&#073;大写字母 IUppercase I
741124A01001010J&#074;大写字母 JUppercase J
751134B01001011K&#075;大写字母 KUppercase K
761144C01001100L&#076;大写字母 LUppercase L
771154D01001101M&#077;大写字母 MUppercase M
781164E01001110N&#078;大写字母 NUppercase N
791174F01001111O&#079;大写字母 OUppercase O
801205001010000P&#080;大写字母 PUppercase P
811215101010001Q&#081;大写字母 QUppercase Q
821225201010010R&#082;大写字母 RUppercase R
831235301010011S&#083;大写字母 SUppercase S
841245401010100T&#084;大写字母 TUppercase T
851255501010101U&#085;大写字母 UUppercase U
861265601010110V&#086;大写字母 VUppercase V
871275701010111W&#087大写字母 WUppercase W
881305801011000X&#088;大写字母 XUppercase X
891315901011001Y&#089;大写字母 YUppercase Y
901325A01011010Z&#090;大写字母 ZUppercase Z
911335B01011011[&#091;左中括号Opening bracket
921345C01011100\&#092;反斜杠Backslash
931355D01011101]&#093;右中括号Closing bracket
941365E01011110^&#094;音调符号Caret - circumflex
951375F01011111_&#095;下划线Underscore
961406001100000`&#096;重音符Grave accent
971416101100001a&#097;小写字母 aLowercase a
981426201100010b&#098;小写字母 bLowercase b
991436301100011c&#099;小写字母 cLowercase c
1001446401100100d&#100;小写字母 dLowercase d
1011456501100101e&#101;小写字母 eLowercase e
1021466601100110f&#102;小写字母 fLowercase f
1031476701100111g&#103;小写字母 gLowercase g
1041506801101000h&#104;小写字母 hLowercase h
1051516901101001i&#105;小写字母 iLowercase i
1061526A01101010j&#106;小写字母 jLowercase j
1071536B01101011k&#107;小写字母 kLowercase k
1081546C01101100l&#108;小写字母 lLowercase l
1091556D01101101m&#109;小写字母 mLowercase m
1101566E01101110n&#110;小写字母 nLowercase n
1111576F01101111o&#111;小写字母 oLowercase o
1121607001110000p&#112;小写字母 pLowercase p
1131617101110001q&#113;小写字母 qLowercase q
1141627201110010r&#114;小写字母 rLowercase r
1151637301110011s&#115;小写字母 sLowercase s
1161647401110100t&#116;小写字母 tLowercase t
1171657501110101u&#117;小写字母 uLowercase u
1181667601110110v&#118;小写字母 vLowercase v
1191677701110111w&#119;小写字母 wLowercase w
1201707801111000x&#120;小写字母 xLowercase x
1211717901111001y&#121;小写字母 yLowercase y
1221727A01111010z&#122;小写字母 zLowercase z
1231737B01111011{&#123;左大括号Opening brace
1241747C01111100|&#124;垂直线Vertical bar
1251757D01111101}&#125;右大括号Closing brace
1261767E01111110~&#126;波浪号Equivalency sign - tilde
1271777F01111111&#127;删除Delete
后128个称为扩展ASCII码。许多基于x86的系统都支持使用扩展(或“高”)ASCII。扩展ASCII码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号。
十进制
DEC
八进制
OCT
十六进制
HEX
二进制
BIN
符号
Symbol
HTML
实体编码
中文解释
Description
英文解释
Description
1282008010000000&#128;欧盟符号Euro sign
1292018110000001   
1302028210000010&#130;单低 9 引号Single low-9 quotation mark
1312038310000011ƒ&#131;带钩的
拉丁小写字母f
Latin small letter f with hook
1322048410000100&#132;双低 9 引号Double low-9 quotation mark
1332058510000101&#133;水平省略号Horizontal ellipsis
1342068610000110&#134;剑号Dagger
1352078710000111&#135;双剑号Double dagger
1362108810001000ˆ&#136;修正字符
抑扬音符号
Modifier letter circumflex accent
1372118910001001&#137;千分号Per mille sign
1382128A10001010Š&#138;带弯音号的
拉丁大写字母 S
Latin capital letter S with caron
1392138B10001011&#139;左单书名号Single left-pointing angle quotation
1402148C10001100Œ&#140;拉丁大写组合 OELatin capital ligature OE
1412158D10001101   
1422168E10001110Ž&#142;带弯音号的
拉丁大写字母 z
Latin capital letter Z with caron
1432178F10001111   
1442209010010000   
1452219110010001&#145;左单引号Left single quotation mark
1462229210010010&#146;右单引号Right single quotation mark
1472239310010011&#147;左双引号Left double quotation mark
1482249410010100&#148;右双引号Right double quotation mark
1492259510010101&#149; Bullet
1502269610010110&#150;半长破折号En dash
1512279710010111&#151;全长破折号Em dash
1522309810011000˜&#152;小波浪线Small tilde
1532319910011001&#153; Trade mark sign
1542329A10011010š&#154;带弯音号的
拉丁小写字母 s
Latin small letter s with caron
1552339B10011011&#155;右单书名号Single right-pointing
angle quotation mark
1562349C10011100œ&#156;拉丁小写组合 oeLatin small ligature oe
1572359D10011101   
1582369E10011110ž&#158;带弯音号的
拉丁小写字母 z
Latin small letter z with caron
1592379F10011111Ÿ&#159;带弯音号的
拉丁大写字母 Y
Latin capital letter Y with diaeresis
160240A010100000 &#160; Non-breaking space
161241A110100001¡&#161;反向感叹号Inverted exclamation mark
162242A210100010¢&#162;分币符号Cent sign
163243A310100011£&#163;英磅符号Pound sign
164244A410100100¤&#164; Currency sign
165245A510100101¥&#165;人民币符号Yen sign
166246A610100110¦&#166; Pipe, Broken vertical bar
167247A710100111§&#167;章节符号Section sign
168250A810101000¨&#168;通用货币符号Spacing diaeresis - umlaut
169251A910101001©&#169;版权符号Copyright sign
170252AA10101010ª&#170;阴性顺序
指示符号
Feminine ordinal indicator
171253AB10101011«&#171;左角引号Left double angle quotes
172254AC10101100¬&#172; Not sign
173255AD10101101­&#173; Soft hyphen
174256AE10101110®&#174; Registered trade mark sign
175257AF10101111¯&#175; Spacing macron - overline
176260B010110000°&#176;温度符号Degree sign
177261B110110001±&#177;加/减号Plus-or-minus sign
178262B210110010²&#178;上标 2Superscript two - squared
179263B310110011³&#179;上标 3Superscript three - cubed
180264B410110100´&#180; Acute accent - spacing acute
181265B510110101µ&#181;微符号Micro sign
182266B610110110&#182;段落符号,
pilcrow
Pilcrow sign - paragraph sign
183267B710110111·&#183;中点Middle dot - Georgian comma
184270B810111000¸&#184; Spacing cedilla
185271B910111001¹&#185;上标 1Superscript one
186272BA10111010º&#186;阳性顺序
指示符
Masculine ordinal indicator
187273BB10111011»&#187;右角引号Right double angle quotes
188274BC10111100¼&#188;分数四分之一Fraction one quarter
189275BD10111101½&#189;分数二分之一Fraction one half
190276BE10111110¾&#190; Fraction three quarters
191277BF10111111¿&#191;反向问号Inverted question mark
192300C011000000À&#192;带重音符
的大写字母 A
Latin capital letter A with grave
193301C111000001Á&#193;带尖锐重音
的大写字母 A
Latin capital letter A with acute
194302C211000010Â&#194;带音调符号
的大写字母 A
Latin capital letter A with circumflex
195303C311000011Ã&#195;带代字号
的大写字母 A
Latin capital letter A with tilde
196304C411000100Ä&#196;带元音变音
(分音符号)
的大写字母 A
Latin capital letter A with diaeresis
197305C511000101Å&#197;带铃声
的大写字母 A
Latin capital letter A with ring above
198306C611000110Æ&#198;大写字母 AE
双重元音
Latin capital letter AE
199307C711000111Ç&#199;带变音符号
的大写字母 C
Latin capital letter C with cedilla
200310C811001000È&#200;带重音符
的大写字母 E
Latin capital letter E with grave
201311C911001001É&#201;带尖锐重音
的大写字母 E
Latin capital letter E with acute
202312CA11001010Ê&#202;带音调符号
的大写字母 E
Latin capital letter E with circumflex
203313CB11001011Ë&#203;带元音变音
(分音符号)
的大写字母 E
Latin capital letter E with diaeresis
204314CC11001100Ì&#204;带重音符
的大写字母 I
Latin capital letter I with grave
205315CD11001101Í&#205;带尖锐重音
的大写字母 I
Latin capital letter I with acute
206316CE11001110Î&#206;带音调符号
的大写字母 I
Latin capital letter I with circumflex
207317CF11001111Ï&#207;带元音变音
(分音符号)
的大写字母 I
Latin capital letter I with diaeresis
208320D011010000Ð&#208; Latin capital letter ETH
209321D111010001Ñ&#209;带代字号
的大写字母 N
Latin capital letter N with tilde
210322D211010010Ò&#210;带重音符
的大写字母 O
Latin capital letter O with grave
211323D311010011Ó&#211;带尖锐重音
的大写字母 O
Latin capital letter O with acute
212324D411010100Ô&#212;带音调符号
的大写字母 O
Latin capital letter O with circumflex
213325D511010101Õ&#213;带代字号
的大写字母 O
Latin capital letter O with tilde
214326D611010110Ö&#214;带元音变音
(分音符号)
的大写字母 O
Latin capital letter O with diaeresis
215327D711010111×&#215;大写字母
OE 连字
Multiplication sign
216330D811011000Ø&#216;带斜杠
的大写字母 O
Latin capital letter O with slash
217331D911011001Ù&#217;带重音符
的大写字母 U
Latin capital letter U with grave
218332DA11011010Ú&#218;带尖锐重音
的大写字母 U
Latin capital letter U with acute
219333DB11011011Û&#219;带音调符号
的大写字母 U
Latin capital letter U with circumflex
220334DC11011100Ü&#220;带元音变音
(分音符号)
的大写字母 U
Latin capital letter U with diaeresis
221335DD11011101Ý&#221;带元音变音
(分音符号)
的大写字母 Y
Latin capital letter Y with acute
222336DE11011110Þ&#222; Latin capital letter THORN
223337DF11011111ß&#223;德语高调
小写字母 s
Latin small letter sharp s - ess-zed
224340E011100000à&#224;带重音符
的小写字母 a
Latin small letter a with grave
225341E111100001á&#225;带尖锐重音
的小写字母 a
Latin small letter a with acute
226342E211100010â&#226;带音调符号
的小写字母 a
Latin small letter a with circumflex
227343E311100011ã&#227;带代字号
的小写字母 a
Latin small letter a with tilde
228344E411100100ä&#228;带元音变音
(分音符号)
的小写字母 a
Latin small letter a with diaeresis
229345E511100101å&#229;带铃声的
小写字母 a
Latin small letter a with ring above
230346E611100110æ&#230;小写字母 ae
双重元音
Latin small letter ae
231347E711100111ç&#231;带变音符号
的小写字母 c
Latin small letter c with cedilla
232350E811101000è&#232;带重音符
的小写字母 e
Latin small letter e with grave
233351E911101001é&#233;带尖锐重音
的小写字母 e
Latin small letter e with acute
234352EA11101010ê&#234;带音调符号
的小写字母 e
Latin small letter e with circumflex
235353EB11101011ë&#235;带元音变音
(分音符号)
的小写字母 e
Latin small letter e with diaeresis
236354EC11101100ì&#236;带重音符
的小写字母 i
Latin small letter i with grave
237355ED11101101í&#237;带尖锐重音
的小写字母 i
Latin small letter i with acute
238356EE11101110î&#238;带音调符号
的小写字母 i
Latin small letter i with circumflex
239357EF11101111ï&#239;带元音变音
(分音符号)
的小写字母 i
Latin small letter i with diaeresis
240360F011110000ð&#240; Latin small letter eth
241361F111110001ñ&#241;带代字号
的小写字母 n
Latin small letter n with tilde
242362F211110010ò&#242;带重音符
的小写字母 o
Latin small letter o with grave
243363F311110011ó&#243;带尖锐重音
的小写字母 o
Latin small letter o with acute
244364F411110100ô&#244;带音调符号
的小写字母 o
Latin small letter o with circumflex
245365F511110101õ&#245;带代字号
的小写字母 o
Latin small letter o with tilde
246366F611110110ö&#246;带元音变音
(分音符号)
的小写字母 o
Latin small letter o with diaeresis
247367F711110111÷&#247;小写字母 oe
连字
Division sign
248370F811111000ø&#248;带斜杠
的小写字母 o
Latin small letter o with slash
249371F911111001ù&#249;带重音符
的小写字母 u
Latin small letter u with grave
250372FA11111010ú&#250;带尖锐重音
的小写字母 u
Latin small letter u with acute
251373FB11111011û&#251;带音调符号
的小写字母 u
Latin small letter u with circumflex
252374FC11111100ü&#252;带元音变音
(分音符号)
的小写字母 u
Latin small letter u with diaeresis
253375FD11111101ý&#253;带元音变音
(分音符号)
的小写字母 y2
Latin small letter y with acute
254376FE11111110þ&#254; Latin small letter thorn
255377FF11111111ÿ&#255; Latin small letter y with diaeresis

3、图片形式

  • 可显示字符
    可显示字符编号范围是32-126(0x20-0x7E),共95个字符。
    在这里插入图片描述
  • 控制字符
    ASCII控制字符的编号范围是0-31和127(0x00-0x1F和0x7F),共33个字符。
    在这里插入图片描述
  • 第一部分:ASCII非打印控制字符表
    ASCII表上的数字0–31分配给了控制字符,用于控制像打印机等一些外围设备。
  • 第二部分:ASCII打印字符
    数字 32–126 分配给了能在键盘上找到的字符,当您查看或打印文档时就会出现。
    在这里插入图片描述
  • 第三部分:扩展ASCII打印字符
    扩展的ASCII字符满足了对更多字符的需求。
    扩展的ASCII包含ASCII中已有的128个字符,又增加了128个字符,总共是256个。
    即使有了这些更多的字符,许多语言还是包含无法压缩到256个字符中的符号。因此,出现了一些ASCII的变体来囊括地区性字符和符号。例如,许多软件程序把ASCII表(又称作ISO8859-1)用于北美、西欧、澳大利亚和非洲的语言。

ASCII码又分为: 标准ASCII码和扩展ASCII码。

  • 标准ASCII码
    标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。

    • 其中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)用作奇偶校验位。

  • 扩展ASCII码

    • 扩展ASCII 字符是从128 到255(0x80-0xff)的字符。许多基于x86的系统都支持使用扩展(或“高”)ASCII。它将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号。针对扩展的ASCII码,不同的国家有不同的字符集,所以它并不是国际标准。
      在这里插入图片描述
      在这里插入图片描述

4、常用转义字符

转义字符意义ASCII码值(十进制)
\a响铃(BEL)

7

\b退格(BS)

8

\f换页(FF)

12

\n换行(LF)

10

\r回车(CR)

13

\t水平制表(HT)

9

\v垂直制表(VT)

11

\\反斜杠

92

\?问号字符

63

\'单引号字符

39

\"双引号字符

34

\0空字符(NULL)

0

\ddd任意字符三位八进制
\xhh任意字符二位十六进制

5、ASCII、Unicode 和 UTF-8 之间的关系

5.1 ASCII 编码

计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。

上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为 ASCII 码,一直沿用至今。

ASCII 码一共规定了128个字符的编码,比如空格SPACE是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的一位统一规定为0。

5.2 非 ASCII 编码

英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的。比如,在法语中,字母上方有注音符号,它就无法用 ASCII 码表示。于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为130(二进制10000010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号。

5.3 Unicode

可以想象,如果有一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,那么乱码问题就会消失。这就是 Unicode,就像它的名字都表示的,这是一种所有符号的编码。

Unicode 当然是一个很大的集合,现在的规模可以容纳100多万个符号。每个符号的编码都不一样,比如,U+0639表示阿拉伯字母Ain,U+0041表示英语的大写字母A,U+4E25表示汉字严。具体的符号对应表,可以查询unicode.org,或者专门的汉字对应表。

需要注意的是,Unicode 只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。

比如,汉字严的 Unicode 是十六进制数4E25,转换成二进制数足足有15位(100111000100101),也就是说,这个符号的表示至少需要2个字节。表示其他更大的符号,可能需要3个字节或者4个字节,甚至更多。

它们造成的结果是:1)出现了 Unicode 的多种存储方式,也就是说有许多种不同的二进制格式,可以用来表示 Unicode。2)Unicode 在很长一段时间内无法推广,直到互联网的出现。

5.4 UTF-8

互联网的普及,强烈要求出现一种统一的编码方式。UTF-8 就是在互联网上使用最广的一种 Unicode 的实现方式。其他实现方式还包括 UTF-16(字符用两个字节或四个字节表示)和 UTF-32(字符用四个字节表示),不过在互联网上基本不用。重复一遍,这里的关系是,UTF-8 是 Unicode 的实现方式之一。

UTF-8 最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。

UTF-8 的编码规则很简单,只有二条:

1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 码。因此对于英语字母,UTF-8 编码和 ASCII 码是相同的。 2)对于n字节的符号(n > 1),第一个字节的前n位都设为1,第n + 1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码。 

下表总结了编码规则,字母x表示可用编码的位:

Unicode符号范围(十六进制)UTF-8编码方式(二进制)
0000 0000-0000 007F0xxxxxxx
0000 0080-0000 07FF110xxxxx 10xxxxxx
0000 0800-0000 FFFF1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
跟据上表,解读 UTF-8 编码非常简单。如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。
1)ANSI是默认的编码方式。对于英文文件是ASCII编码,对于简体中文文件是GB2312编码(只针对 Windows 简体中文版,如果是繁体中文版会采用 Big5 码)。 2)Unicode编码这里指的是notepad.exe使用的 UCS-2 编码方式,即直接用两个字节存入字符的 Unicode 码,这个选项用的 little endian 格式。 3)Unicode big endian编码与上一个选项相对应。我在下一节会解释 little endian 和 big endian 的涵义。 4)UTF-8编码,也就是上一节谈到的编码方法。 

5.5 Little endian 和 Big endian

UCS-2 格式可以存储 Unicode 码(码点不超过0xFFFF)。以汉字严为例,Unicode 码是4E25,需要用两个字节存储,一个字节是4E,另一个字节是25。存储的时候,4E在前,25在后,这就是 Big endian 方式;25在前,4E在后,这是 Little endian 方式。

第一个字节在前,就是"大头方式"(Big endian),第二个字节在前就是"小头方式"(Little endian)。

那么很自然的,就会出现一个问题:计算机怎么知道某一个文件到底采用哪一种方式编码?

Unicode 规范定义,每一个文件的最前面分别加入一个表示编码顺序的字符,这个字符的名字叫做"零宽度非换行空格"(zero width no-break space),用FEFF表示。这正好是两个字节,而且FF比FE大1。

如果一个文本文件的头两个字节是FE FF,就表示该文件采用大头方式;如果头两个字节是FF FE,就表示该文件采用小头方式。

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!