UTF-8 - 维基百科,自由的百科全书 - KFD.ME

文章推薦指數: 80 %
投票人數:10人

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,也是一种前缀码。

它可以用一至四个字节对Unicode字符集中的所有有效编码点进行 ... UTF-8 维基百科,自由的百科全书 跳到导航 跳到搜索 此条目需要补充更多来源。

(2018年12月27日)请协助补充多方面可靠来源以改善这篇条目,无法查证的内容可能会因为异议提出而移除。

致使用者:请搜索一下条目的标题(来源搜索:"UTF-8"—网页、新闻、书籍、学术、图像),以检查网络上是否存在该主题的更多可靠来源(判定指引)。

此条目翻译品质不佳。

翻译者可能不熟悉中文或原文语言,也可能使用了机器翻译。

请协助翻译本条目或重新编写,并注意避免翻译腔的问题。

明显拙劣的翻译请改挂{{d|G13}}提交删除。

UTF-8语言国际标准Unicode分类EASCII变长编码(英语:variable-widthencoding)Unicode转换格式拓展自US-ASCII变换/编码ISO10646(Unicode)前用UTF-1查论编显示了谷歌所记录的2001年至2012年主要编码方法的使用情况,[1]2008年,UTF-8的使用率超过所有其他编码方式,在2012年超过所有网页的60%。

其中ASCIIonly曲线包括所有仅包含ASCII字符的网页,无论元数据中声明如何。

UTF-8(8-bitUnicodeTransformationFormat)是一种针对Unicode的可变长度字符编码,也是一种前缀码。

它可以用一至四个字节对Unicode字符集中的所有有效编码点进行编码,属于Unicode标准的一部分,最初由肯·汤普逊和罗布·派克提出。

[2][3]由于较小值的编码点一般使用频率较高,直接使用Unicode编码效率低下,大量浪费内存空间。

UTF-8就是为了解决向后兼容ASCII码而设计,Unicode中前128个字符,使用与ASCII码相同的二进制值的单个字节进行编码,而且字面与ASCII码的字面一一对应,这使得原来处理ASCII字符的软件无须或只须做少部分修改,即可继续使用。

因此,它逐渐成为电子邮件、网页及其他存储或发送文字优先采用的编码方式。

自2009年以来,UTF-8一直是万维网的最主要的编码形式(对所有,而不仅是Unicode范围内的编码)(并由WHATWG宣布为强制性的“适用于所有事物(forallthings)”,[4]截止到2019年11月,在所有网页中,UTF-8编码应用率高达94.3%(其中一些仅是ASCII编码,因为它是UTF-8的子集),而在排名最高的1000个网页中占96%。

[5]第二热门的多字节编码方式ShiftJIS和GB2312分别具有0.3%和0.2%的占有率。

[6][7][1]Internet邮件联盟(InternetMailConsortium,IMC)建议所有电子邮件程序都能够使用UTF-8展示和创建邮件,[8]W3C建议UTF-8作为XML文件和HTML文件的默认编码方式。

[9]互联网工程工作小组(IETF)要求所有互联网协议都必须支持UTF-8编码[10]。

互联网邮件联盟(IMC)建议所有电子邮件软件都支持UTF-8编码。

[11] 目录 1历史 2结构 3描述 4UTF-8编码字节含义 5设计UTF-8的理由 6UTF-8的编码方式 7UTF-8的特性 8UTF-8编码的优点 9UTF-8编码的缺点 9.1编写不良的解析器 9.2不利于正则表达式检索 9.3其他 10UTF-8的衍生物 10.1Windows 10.2Posix系统 10.3Java 10.3.1变种UTF-8 10.4MacOSX 10.5MySQL 11参阅 12参考文献 13外部链接 13.1由统一码联盟出版的书 历史[编辑] 1992年初,为创建良好的字节串编码系统以供多字节字符集使用,开始了一个正式的研究。

ISO/IEC10646的初稿中有一个非必须的附录,名为UTF。

当中包含了一个供32比特的字符使用的字节串编码系统。

这个编码方式的性能并不令人满意,但它提出了将0-127的范围保留给ASCII以兼容旧系统的概念。

1992年7月,X/Open委员会XoJIG开始寻求一个较佳的编码系统。

Unix系统实验室(USL)的DaveProsser为此提出了一个编码系统的建议。

它具备可更快速实现的特性,并引入一项新的改进。

其中,7比特的ASCII符号只代表原来的意思,所有多字节序列则会包含第8比特的符号,也就是所谓的最高有效比特。

1992年8月,这个建议由IBMX/Open的代表流传到一些感兴趣的团体。

与此同时,贝尔实验室九号项目操作系统工作小组的肯·汤普逊对这编码系统作出重大的修改,让编码可以自我同步,使得不必从字符串的开首读取,也能找出字符间的分界。

1992年9月2日,肯·汤普逊和罗勃·派克一起在美国新泽西州一架餐车的餐桌垫上描绘出此设计的要点。

接下来的日子,Pike及汤普逊将它实现,并将这编码系统完全应用在九号项目当中,及后他将有关成果反馈X/Open。

1993年1月25-29日的在圣地亚哥举行的USENIX会议首次正式介绍UTF-8。

自1996年起,微软的CAB(MSCabinet)规格在UTF-8标准正式落实前就明确容许在任何地方使用UTF-8编码系统。

但有关的编码器实际上从来没有实现这方面的规格。

结构[编辑] UTF-8使用一至六个字节为每个字符编码(尽管如此,2003年11月UTF-8被RFC3629重新规范,只能使用原来Unicode定义的区域,U+0000到U+10FFFF,也就是说最多四个字节): 128个US-ASCII字符只需一个字节编码(Unicode范围由U+0000至U+007F)。

带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及它拿字母则需要两个字节编码(Unicode范围由U+0080至U+07FF)。

其他基本多文种平面(BMP)中的字符(这包含了大部分常用字,如大部分的汉字)使用三个字节编码(Unicode范围由U+0800至U+FFFF)。

其他极少使用的Unicode辅助平面的字符使用四至六字节编码(Unicode范围由U+10000至U+1FFFFF使用四字节,Unicode范围由U+200000至U+3FFFFFF使用五字节,Unicode范围由U+4000000至U+7FFFFFFF使用六字节)。

对上述提及的第四种字符而言,UTF-8使用四至六个字节来编码似乎太耗费资源了。

但UTF-8对所有常用的字符都可以用三个字节表示,而且它的另一种选择,UTF-16编码,对前述的第四种字符同样需要四个字节来编码,所以要决定UTF-8或UTF-16哪种编码比较有效率,还要视所使用的字符的分布范围而定。

不过,如果使用一些传统的压缩系统,比如DEFLATE,则这些不同编码系统间的的差异就变得微不足道了。

若顾及传统压缩算法在压缩较短文字上的效果不大,可以考虑使用Unicode标准压缩格式(SCSU)。

描述[编辑] Unicode与UTF-8的转换 目前有好几份关于UTF-8详细规格的文件,但这些文件在定义上有些许的不同: RFC3629/STD63(2003),这份文件制定了UTF-8是标准的互联网协议元素 第四版,TheUnicodeStandard,§3.9-§3.10(2003) ISO/IEC10646-1:2000附加文件D(2000) 它们取代了以下那些被淘汰的定义: ISO/IEC10646-1:1993修正案2/附加文件R(1996) 第二版,TheUnicodeStandard,附录A(1996) RFC2044(1996) RFC2279(1998) 第三版,TheUnicodeStandard,§2.3(2000)及勘误表#1:UTF-8ShortestForm(2000) UnicodeStandard附加文件#27:Unicode3.1(2001) 事实上,所有定义的基本原理都是相同的,它们之间最主要的不同是支持的字符范围及无效输入的处理方法。

Unicode字符的比特被分割为数个部分,并分配到UTF-8的字节串中较低的比特的位置。

在U+0080的以下字符都使用内含其字符的单字节编码。

这些编码正好对应7比特的ASCII字符。

在其他情况,有可能需要多达4个字符组来表示一个字符。

这些多字节的最高有效比特会设置成1,以防止与7比特的ASCII字符混淆,并保持标准的字节主导字符串运作顺利。

代码范围十六进制 标量值(scalarvalue)二进制 UTF-8二进制/十六进制 注释 000000-00007F128个代码 00000000000000000zzzzzzz 0zzzzzzz(00-7F) ASCII字符范围,字节由零开始 七个z 七个z 000080-0007FF1920个代码 0000000000000yyyyyzzzzzz 110yyyyy(C0-DF)10zzzzzz(80-BF) 第一个字节由110开始,接着的字节由10开始 三个y;二个y;六个z 五个y;六个z 000800-00D7FF00E000-00FFFF61440个代码[Note1] 00000000xxxxyyyyyyzzzzzz 1110xxxx(E0-EF)10yyyyyy10zzzzzz 第一个字节由1110开始,接着的字节由10开始 四个x;四个y;二个y;六个z 四个x;六个y;六个z 010000-10FFFF1048576个代码 000wwwxxxxxxyyyyyyzzzzzz 11110www(F0-F7)10xxxxxx10yyyyyy10zzzzzz 将由11110开始,接着的字节由10开始 三个w;二个x;四个x;四个y;二个y;六个z 三个w;六个x;六个y;六个z Note1Unicode在范围D800-DFFF中不存在任何字符,基本多文种平面中约定了这个范围用于UTF-16扩展标识辅助平面(两个UTF-16表示一个辅助平面字符)。

当然,任何编码都是可以被转换到这个范围,但在unicode中他们并不代表任何合法的值。

例如,希伯来语字母aleph(א)的Unicode代码是U+05D0,按照以下方法改成UTF-8: 它属于U+0080到U+07FF区域,这个表说明它使用双字节,110yyyyy10zzzzzz. 十六进制的0x05D0换算成二进制就是101-1101-0000. 这11位数按顺序放入"y"部分和"z"部分:1101011110010000. 最后结果就是双字节,用十六进制写起来就是0xD70x90,这就是这个字符aleph(א)的UTF-8编码。

所以开始的128个字符(US-ASCII)只需一字节,接下来的1920个字符需要双字节编码,包括带附加符号的拉丁字母,希腊字母,西里尔字母,科普特语字母,亚美尼亚语字母,希伯来文字母和阿拉伯字母的字符。

基本多文种平面中其余的字符使用三个字节,剩余字符使用四个字节。

根据这种方式可以处理更大数量的字符。

原来的规范允许长达6字节的序列,可以覆盖到31位(通用字符集原来的极限)。

尽管如此,2003年11月UTF-8被RFC 3629重新规范,只能使用原来Unicode定义的区域,U+0000到U+10FFFF。

根据这些规范,以下字节值将无法出现在合法UTF-8序列中: 编码(二进制) 编码(十六进制) 注释 1100000x C0,C1 过长编码:双字节序列的头字节,但码点<=127 1111111x FE,FF 无法达到:7或8字节序列的头字节 111110xx1111110x F8,F9,FA,FB,FC,FD 被RFC3629规范:5或6字节序列的头字节 111101011111011x F5,F6,F7 被RFC3629规范:码点超过10FFFF的头字节 UTF-8编码字节含义[编辑] 对于UTF-8编码中的任意字节B,如果B的第一位为0,则B独立的表示一个字符(ASCII码); 如果B的第一位为1,第二位为0,则B为一个多字节字符中的一个字节(非ASCII字符); 如果B的前两位为1,第三位为0,则B为两个字节表示的字符中的第一个字节; 如果B的前三位为1,第四位为0,则B为三个字节表示的字符中的第一个字节; 如果B的前四位为1,第五位为0,则B为四个字节表示的字符中的第一个字节; 因此,对UTF-8编码中的任意字节,根据第一位,可判断是否为ASCII字符;根据前二位,可判断该字节是否为一个字符编码的第一个字节;根据前四位(如果前两位均为1),可确定该字节为字符编码的第一个字节,并且可判断对应的字符由几个字节表示;根据前五位(如果前四位为1),可判断编码是否有错误或数据传输过程中是否有错误。

设计UTF-8的理由[编辑] UTF-8的设计有以下的多字符组序列的特质: 单字节字符的最高有效比特永远为0。

多字节序列中的首个字符组的几个最高有效比特决定了序列的长度。

最高有效位为110的是2字节序列,而1110的是三字节序列,如此类推。

多字节序列中其余的字节中的首两个最高有效比特为10。

UTF-8的这些特质,保证了一个字符的字节序列不会包含在另一个字符的字节序列中。

这确保了以字节为基础的部分字符串比对(sub-stringmatch)方法可以适用于在文字中搜索字或词。

有些比较旧的可变长度8位编码(如ShiftJIS)没有这个特质,故字符串比对的算法变得相当复杂。

虽然这增加了UTF-8编码的字符串的信息冗余,但是利多于弊。

另外,资料压缩并非Unicode的目的,所以不可混为一谈。

即使在发送过程中有部分字节因错误或干扰而完全丢失,还是有可能在下一个字符的起点重新同步,令受损范围受到限制。

另一方面,由于其字节序列设计,如果一个疑似为字符串的序列被验证为UTF-8编码,那么我们可以有把握地说它是UTF-8字符串。

一段两字节随机序列碰巧为合法的UTF-8而非ASCII的几率为32分1。

对于三字节序列的几率为256分1,对更长的序列的几率就更低了。

UTF-8的编码方式[编辑] UTF-8是UNICODE的一种变长度的编码表达方式《一般UNICODE为双字节(指UCS2)》,它由肯·汤普逊(KenThompson)于1992年创建,现在已经标准化为RFC3629。

UTF-8就是以8位为单元对UCS进行编码,而UTF-8不使用大尾序和小尾序的形式,每个使用UTF-8存储的字符,除了第一个字节外,其余字节的头两个比特都是以"10"开始,使文字处理器能够较快地找出每个字符的开始位置。

但为了与以前的ASCII码兼容(ASCII为一个字节),因此UTF-8选择了使用可变长度字节来存储Unicode: (注意:不论是Unicode(Table3.7)[12],还是ISO10646(10.2UTF-8)[13],目前都只规定了最高码位是0x10FFFF的字符的编码。

下表中表示大于0x10FFFF的UTF-8编码是不符合标准的。

) Unicode和UTF-8之间的转换关系表(x字符表示码点占据的位) 码点的位数 码点起值 码点终值 字节序列 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6   7 U+0000 U+007F 1 0xxxxxxx 11 U+0080 U+07FF 2 110xxxxx 10xxxxxx 16 U+0800 U+FFFF 3 1110xxxx 10xxxxxx 10xxxxxx 21 U+10000 U+1FFFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 26 U+200000 U+3FFFFFF 5 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 31 U+4000000 U+7FFFFFFF 6 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 在ASCII码的范围,用一个字节表示,超出ASCII码的范围就用字节表示,这就形成了我们上面看到的UTF-8的表示方法,这样的好处是当UNICODE文件中只有ASCII码时,存储的文件都为一个字节,所以就是普通的ASCII文件无异,读取的时候也是如此,所以能与以前的ASCII文件兼容。

大于ASCII码的,就会由上面的第一字节的前几位表示该unicode字符的长度,比如110xxxxx前三位的二进制表示告诉我们这是个2BYTE的UNICODE字符;1110xxxx是个三位的UNICODE字符,依此类推;xxx的位置由字符编码数的二进制表示的位填入。

越靠右的x具有越少的特殊意义。

只用最短的那个足够表达一个字符编码数的多字节串。

注意在多字节串中,第一个字节的开头"1"的数目就是整个串中字节的数目。

ASCII字母继续使用1字节存储,重音文字、希腊字母或西里尔字母等使用2字节来存储,而常用的汉字就要使用3字节。

辅助平面字符则使用4字节。

在UTF-8+BOM格式文件的开首,很多时都放置一个U+FEFF字符(UTF-8以EF,BB,BF代表),以显示这个文本文件是以UTF-8编码。

UTF-8的特性[编辑] UTF-8图表说明 UTF-8 最小码位 0000 最大码位 10FFFF 每字节所占位数 8bits Byteorder N/A 每个字符最小字节数 1 每个字符最大字节数 4 UCS字符U+0000到U+007F(ASCII)被编码为字节0x00到0x7F(ASCII兼容),这也意味着只包含7位ASCII字符的文件在ASCII和UTF-8两种编码方式下是一样的。

所有>U+007F的UCS字符被编码为一个多个字节的串,每个字节都有标记位集。

因此,ASCII字节(0x00-0x7F)不可能作为任何其他字符的一部分。

表示非ASCII字符的多字节串的第一个字节总是在0xC0到0xFD的范围里,并指出这个字符包含多少个字节。

多字节串的其余字节都在0x80到0xBF范围里,这使得重新同步非常容易,并使编码无国界,且很少受丢失字节的影响。

可以编入所有可能的231个UCS代码 UTF-8编码字符理论上可以最多到6个字节长,然而16位BMP字符最多只用到3字节长。

BigendianUCS-4字节串的排列顺序是预定的。

字节0xFE和0xFF在UTF-8编码中从未用到,同时,UTF-8以字节为编码单元,它的字节顺序在所有系统中都是一様的,没有字节序的问题,也因此它实际上并不需要BOM。

与UTF-16或其他Unicode编码相比,对于不支持Unicode和XML的系统,UTF-8更不容易造成问题。

UTF-8编码的优点[编辑] 总体来说,在Unicode字符串中不可能由码点数量决定显示它所需要的长度,或者显示字符串之后在文本缓冲区中光标应该放置的位置;组合字符、变宽字体、不可打印字符和从右至左的文字都是其归因。

所以尽管在UTF-8字符串中字符数量与码点数量的关系比UTF-32更为复杂,在实际中很少会遇到有不同的情形。

更详细的说,UTF-8编码具有以下几点优点: ASCII是UTF-8的一个子集。

因为一个纯ASCII字符串也是一个合法的UTF-8字符串,所以现存的ASCII文本不需要转换。

为传统的扩展ASCII字符集设计的软件通常可以不经修改或很少修改就能与UTF-8一起使用。

使用标准的面向字节的排序例程对UTF-8排序将产生与基于Unicode代码点排序相同的结果。

(尽管这只有有限的有用性,因为在任何特定语言或文化下都不太可能有仍可接受的文字排列顺序。

) UTF-8和UTF-16都是可扩展标记语言文档的标准编码。

所有其它编码都必须通过显式或文本声明来指定。

[1](页面存档备份,存于互联网档案馆) 任何面向字节的字符串搜索算法都可以用于UTF-8的数据(只要输入仅由完整的UTF-8字符组成)。

但是,对于包含字符记数的正则表达式或其它结构必须小心。

UTF-8字符串可以由一个简单的算法可靠地识别出来。

就是,一个字符串在任何其它编码中表现为合法的UTF-8的可能性很低,并随字符串长度增长而减小。

举例说,字符值C0,C1,F5至FF从来没有出现。

为了更好的可靠性,可以使用正则表达式来统计非法过长和替代值(可以查看W3FAQ:MultilingualForms(页面存档备份,存于互联网档案馆)上的验证UTF-8字符串的正则表达式)。

与UCS-2的比较:ASCII转换成UCS-2,在编码前插入一个0x0。

用这些编码,会含括一些控制符,比如"或'/',这在UNIX和一些C函数中,将会产生严重错误。

因此可以肯定,UCS-2不适合作为Unicode的外部编码,也因此诞生了UTF-8。

UTF-8编码的缺点[编辑] 编写不良的解析器[编辑] 一份写得很差(并且与当前标准的版本不兼容)的UTF-8解析器可能会接受一些不同的伪UTF-8表示并将它们转换到相同的Unicode输出上。

这为设计用于处理八位表示的校验例程提供了一种遗漏信息的方式。

不利于正则表达式检索[编辑] 正则表达式可以进行很多英文高级的模糊检索。

例如,[a-h]表示a到h间所有字母。

同样GBK编码的中文也可以这样利用正则表达式,比如在只知道一个字的读音而不知道怎么写的情况下,也可用正则表达式检索,因为GBK编码是按读音排序的。

但是UTF-8不是按读音排序的,所以不利于用正则表达式检索(虽然正则表达式检索并未考虑中文中的多音字,但是由于中文的多音字数量不多,不少多音字还是同音不同调类型的多音字,所以大多数情况下正则表达式检索是可以接受的)。

但是,Unicode是按部首排序的,因此在只知道一个字的部首而不知道如何发音的情况下,UTF-8可用正则表达式检索而GBK不行。

其他[编辑] 与其他Unicode编码相比,特别是UTF-16,在UTF-8中ASCII字符占用的空间只有一半,可是在一些字符的UTF-8编码占用的空间就要多出1/3,特别是中文、日文和韩文(CJK)这样的方块文字。

UTF-8的派生物[编辑] Windows[编辑] 虽然不是标准,但许多Windows程序(包括Windows记事本)在UTF-8编码的文件的开首加入一段字节串EFBBBF。

这是字节顺序记号U+FEFF的UTF-8编码结果。

对于没有预期要处理UTF-8的文本编辑器和浏览器会显示成ISO-8859-1字符串。

Posix系统[编辑] Posix系统明确不建议使用字节序掩码EFBBBF。

[14]因为很多文本文件期望以“#!”(Shebang)开头指示要运行的程序。

Linux系统选择使用Unicode规范形式NormalizationFormC(NFC),即优先使用预组装字符(precomposedcharacter)而非组合字符序列(combiningcharactersequence)。

2002年9月发布的RedHatLinux8.0才开始正式把大多数区域设置的默认编码设为UTF-8。

此前是各种语言的但字节编码为主。

2004年9月SuSELinux9.1开始,缺省编码迁移为UTF-8。

字符串处理时,使用UTF-8或locale依赖的多字节编码情形,比使用C语言wchar_t的宽字符固定宽度编码,要慢1至2个数量级。

[14] Java[编辑] 在通常用法下,Java程序语言在通过InputStreamReader和OutputStreamWriter读取和写入串的时候支持标准UTF-8。

但是,Java也支持一种非标准的变体UTF-8,供对象的序列化,Java本地界面和在class文件中的嵌入常数时使用的modifiedUTF-8。

变种UTF-8[编辑] 标准和变种的UTF-8有两个不同点。

第一,空字符(nullcharacter,U+0000)使用双字节的0xc00x80,而不是单字节的0x00。

这保证了在已编码字符串中没有嵌入空字节。

因为C语言等语言程序中,单字节空字符是用来标志字符串结尾的。

当已编码字符串放到这样的语言中处理,一个嵌入的空字符将把字符串一刀两断。

第二个不同点是基本多文种平面之外字符的编码的方法。

在标准UTF-8中,这些字符使用4字节形式编码,而在修正的UTF-8中,这些字符和UTF-16一样首先表示为代理对(surrogatepairs),然后再像CESU-8那样按照代理对分别编码。

这样修正的原因更是微妙。

Java中的字符为16位长,因此一些Unicode字符需要两个Java字符来表示。

语言的这个性质盖过了Unicode的增补平面的要求。

尽管如此,为了要保持良好的向后兼容、要改变也不容易了。

这个修正的编码系统保证了一个已编码字符串可以一次编为一个UTF-16码,而不是一次一个Unicode码点。

不幸的是,这也意味着UTF-8中需要4字节的字符在变种UTF-8中变成需要6字节。

因为变种UTF-8并不是UTF-8,所以用户在交换信息和使用互联网的时候需要特别注意不要误把变种UTF-8当成UTF-8数据。

MacOSX[编辑] 参见:统一码等价性 MacOSX操作系统使用正式分解万国码(canonicallydecomposedUnicode),在文件系统中使用UTF-8编码进行文件命名,这做法通常被称为UTF-8-MAC。

正式分解万国码中,预组合字符是被禁止使用的,必须以组合字符取代。

这种方法使分类变得非常简单,但是会搞混那些使用预组合字符为标准、组合字符用来显示特殊字符的软件。

Mac系统的这种NFD数据是万国码规范化(Unicodenormalization)的一种格式。

而其他系统,包括Windows和Linux,使用万国码规范的NFC形式,也是W3C标准使用的形式。

所以通常NFD数据必须转换成NFC才能被其他平台或者网络使用。

苹果开发者专区有关于此问题的讨论:AppleQ&A1173(页面存档备份,存于互联网档案馆)。

MySQL[编辑] MySQL字符编码集中有两套UTF-8编码实现:“utf8”和“utf8mb4”,其中“utf8”是一个字最多占据3字节空间的编码实现;而“utf8mb4”则是一个字最多占据4字节空间的编码实现,也就是UTF-8的完整实现。

这是由于MySQL在4.1版本开始支持UTF-8编码(当时参考UTF-8草案版本为RFC 2279)时,为2003年,并且在同年9月限制了其实现的UTF-8编码的空间占用最多为3字节,而UTF-8正式形成标准化文档(RFC 3629)是其之后。

限制UTF-8编码实现的编码空间占用一般被认为是考虑到数据库文件设计的兼容性和读取最优化,但实际上并没有达到目的,而且在UTF-8编码开始出现需要存入非基本多文种平面的Unicode字符(例如emoji字符)时导致无法存入(由于3字节的实现只能存入基本多文种平面内的字符)。

直到2010年在5.5版本推出“utf8mb4”来代替、“utf8”重命名为“utf8mb3”并调整“utf8”为“utf8mb3”的别名,并不建议使用旧“utf8”编码,以此修正遗留问题。

[15][16][17][18] 参阅[编辑] Alt码 ASCII 字节顺序记号 Comparisonofemailclients#Features ComparisonofUnicodeencodings CharacterencodingsinHTML ISO/IEC8859 GB18030 iconv Unicodeande-mail UnicodeandHTML 通用字符集 UTF-16 UTF-9和UTF-18 宽字符 参考文献[编辑] ^1.01.1Davis,Mark.Unicodeover60percentoftheweb.OfficialGoogleBlog.2012-02-03[2019-11-23].(原始内容存档于2018-08-09).  ^Pike,Rob.UTF-8history.2003-04-30[2019-11-23].(原始内容存档于2006-10-29)....UTF-8wasdesigned,infrontofmyeyes,onaplacematinaNewJerseydineronenightinSeptemberorso1992...SothatnightKenwrotepackingandunpackingcodeandIstartedtearingintotheCandgraphicslibraries.Thenextdayallthecodewasdone... . ^Pike,Rob;Thompson,Ken.HelloWorldorΚαλημέρακόσμεorこんにちは世界(PDF).ProceedingsoftheWinter1993USENIXConference.1993[2019-11-23].(原始内容存档(PDF)于2017-10-11).  ^EncodingStandard.encoding.spec.whatwg.org.[2019-11-23].(原始内容存档于2015-02-04)(英语).TheproblemsoutlinedheregoawaywhenexclusivelyusingUTF-8,whichisoneofthemanyreasonsthatisnowthemandatoryencodingforallthings.  ^UsageSurveyofCharacterEncodingsbrokendownbyRanking.w3techs.com.[2019-11-23].(原始内容存档于2022-01-21)(英语).  ^Historicaltrendsintheusageofcharacterencodings.[2019-11-14].  ^UTF-8UsageStatistics.BuiltWith.[2011-03-28].(原始内容存档于2021-12-07).  ^UsingInternationalCharactersinInternetMail.InternetMailConsortium.1998-08-01[2007-11-08].(原始内容存档于2007-10-26).  ^Specifyingthedocument'scharacterencoding,HTML5.2,WorldWideWebConsortium,14December2017[2018-06-03],(原始内容存档于2019-06-13)  ^参考RFC2277section3.1 ^UsingInternationalCharactersinInternetMail.2007-10-26[2018-07-27].原始内容存档于2007-10-26.  ^TheUnicodeStandard,Version13.0,Chapter3(PDF).[2020-03-23].(原始内容存档(PDF)于2021-09-20).  ^ISO10646标准下载页面.[2020-03-23].(原始内容存档于2022-01-19).  ^14.014.1UTF-8andUnicodeFAQforUnix/LinuxbyMarkusKuhn.[2005-06-16].(原始内容存档于2018-09-24).  ^MySQL ::MySQL8.0ReferenceManual ::10.9.3Theutf8CharacterSet(Aliasforutf8mb3).dev.mysql.com.[2020-04-03].(原始内容存档于2021-10-31).  ^MySQL ::MySQL8.0ReferenceManual ::10.9.2Theutf8mb3CharacterSet(3-ByteUTF-8UnicodeEncoding).dev.mysql.com.[2020-04-03].(原始内容存档于2022-01-13).  ^MySQL ::MySQL8.0ReferenceManual ::10.9.1Theutf8mb4CharacterSet(4-ByteUTF-8UnicodeEncoding).dev.mysql.com.[2020-04-03].(原始内容存档于2021-10-25).  ^Hooper,Adam.InMySQL,neveruse“utf8”.Use“utf8mb4”..Medium.2019-08-19[2020-04-03].(原始内容存档于2020-11-30)(英语).  外部链接[编辑] RFC3629:UTF-8标准 RFC2277:IETFpolicyoncharactersetsandlanguages RobPiketellsthestoryofUTF-8'screation(页面存档备份,存于互联网档案馆) OriginalUTF-8paper UTF-8testpagesbyUniversityHannover(页面存档备份,存于互联网档案馆)andtheWorldWideWebConsortium(页面存档备份,存于互联网档案馆) Unix/Linux:UTF-8和Unicode的常见问题集(页面存档备份,存于互联网档案馆),LinuxUnicodeHOWTO,UTF-8andGentoo(页面存档备份,存于互联网档案馆) TheUnicode/UTF-8-charactertable(页面存档备份,存于互联网档案馆)displaysUTF-8inavarietyofformats(withUnicodeandHTMLencodinginformation) OnlineToolforURLencoding/decodingaccordingtoRFC3986andRFC3629(JavaScript,GPL) UTF-8测试页 UTF-8(页面存档备份,存于互联网档案馆) 由统一码联盟出版的书[编辑] TheUnicodeStandard,Version5.0,FifthEdition,TheUnicodeConsortium,Addison-WesleyProfessional,2006年10月27日。

ISBN0-321-48091-0 TheUnicodeStandard,Version4.0,TheUnicodeConsortium,Addison-WesleyProfessional,2003年8月27日。

ISBN0-321-18578-1 查论编UnicodeUnicode 统一码联盟 通用字符集 Unicode 码位 Unicode区段 通用字符集字符(英语:UniversalCharacterSetcharacters) Unicode字符特性(英语:Unicodecharacterproperty) Unicode字符平面映射 私人使用区 字符通用字符集字符(英语:UniversalCharacterSetcharacters) 字节顺序记号 CombiningGraphemeJoiner(英语:CombiningGraphemeJoiner) 左至右符号及右至左符号 软连字符(英语:Softhyphen) 连词字符 零宽连字 零宽不连字 零宽空格 列表 Unicode字符列表 中日韩统一表意文字 组合字符 Unicode中的重复字符(英语:DuplicatecharactersinUnicode) Unicode数字 Unicode收录的文字 空格 Unicode符号 全角和半角 处理算法 双向文稿 统一码测序算法 ISO14651(英语:ISO14651) Unicode等价性 异体字选择器 国际表意文字核心 Unicode编码比较(英语:ComparisonofUnicodeencodings) 统一码二进制有序压缩 UTF-16的八比特兼容编码方案 Punycode 统一码标准压缩方案 UTF-1 UTF-7 UTF-8 UTF-16 UTF-32 UTF-EBCDIC(英语:UTF-EBCDIC) 组合字符 组合字符 Unicode兼容字符 Unicode中的重复字符(英语:DuplicatecharactersinUnicode) Unicode等价性 同形字 预组字符 Unicode中的拉丁文字预组字符(英语:ListofprecomposedLatincharactersinUnicode) Z-变体 异体字选择器 区域指示符 菲茨帕特里克度量 使用 国际化域名 Unicode与电子邮件(英语:Unicodeandemail) Unicode字体 Unicode与HTML(英语:UnicodeandHTML) XML与HTML字符实体引用列表 字符值引用 Unicode输入法 国际表意文字核心 相关标准 通用当地数据存储库‎ GB18030 ISO/IEC8859 ISO15924 相关主题 Unicode CSUR 表意文字小组 国际统一码部件 汉字统一化(英语:Hanunification) 恶搞RFC#4042(UTF-9/UTF-18)  Unicode收录的文字收录文字 组合字符 附加符号 标点符号 空格 Unicode数字 现代文字 Adlamalphabet(英语:Adlamalphabet) 阿拉伯文字 阿拉伯语附加符号(英语:Arabicdiacritics) 亚美尼亚字母 巴厘字母 巴姆穆文字 巴塔克文(英语:Batakalphabet) 孟加拉文 注音符号 盲文 布希德文 缅文 加拿大原住民音节文字 Chakmaalphabet(英语:Chakmaalphabet) 占语字母 Cherokeesyllabary(英语:Cherokeesyllabary) 中日韩统一表意文字 西里尔字母 德瑟雷特文(英语:Deseretalphabet) 天城文 吉兹字母 格鲁吉亚字母 希腊字母 古吉拉特文 GunjalaGondiLipi(英语:GunjalaGondiLipi) 古木基文 谚文 哈乃斐罗兴亚文字 朝鲜汉字 Hanunó'oalphabet(英语:Hanunó'oalphabet) 希伯来字母 希伯来语附加符号(英语:Hebrewdiacritics) 平假名 爪哇字母 日本汉字 卡纳达文 片假名 KayahLialphabet(英语:KayahLialphabet) 高棉文 寮文字 Unicode中的拉丁字母 绒巴文 Limbualphabet(英语:Limbualphabet) 老傈僳文 布吉斯文(英语:Lontaraalphabet) 马拉雅拉姆文 Gondiwriting(英语:Gondiwriting) MendeKikakuiscript(英语:MendeKikakuiscript) Medefaidrin(英语:Medefaidrin) 柏格理苗文 传统蒙古文 Mropeople(英语:Mropeople) 西非书面字母 西双版纳傣文 PrachalitNepalalphabet(英语:PrachalitNepalalphabet) 女书 OlChikialphabet(英语:OlChikialphabet) 奥里亚文 Osagealphabet(英语:Osagealphabet) 奥斯曼亚字母 PahawhHmong(英语:PahawhHmong) PauCinHau(英语:PauCinHau) Rejangalphabet(英语:Rejangalphabet) Samaritanalphabet(英语:Samaritanalphabet) Saurashtraalphabet(英语:Saurashtraalphabet) 萧伯纳字母 僧伽罗文 索拉僧平字母 Sundanesealphabet(英语:Sundanesealphabet) SylhetiNagari(英语:SylhetiNagari) 叙利亚字母 Tagbanwaalphabet(英语:Tagbanwaalphabet) 德宏傣文 老傣文 傣黯语 泰米尔文 泰卢固文 它拿字母 泰文字 藏文 提非纳文字 底罗仆多文 Vaisyllabary(英语:Vaisyllabary) WarangCiti(英语:WarangCiti) 彝文 古代文字 阿洪姆文 安纳托利亚象形文字(英语:Anatolianhieroglyphs) 古北阿拉伯文(英语:AncientNorthArabian) 阿维斯陀文(英语:Avestanalphabet) Bassaalphabet(英语:Bassaalphabet) 梵文(英语:Bhaiksukialphabet) 婆罗米文 卡里亚文(英语:Carianalphabets) 高加索阿尔巴尼亚字母(英语:CaucasianAlbanianalphabet) 科普特字母 楔形文字 塞浦路斯音节文字 多格拉语 圣书体 爱尔巴桑 格拉哥里字母 哥德字母 古兰塔文 Hatranalphabet(英语:Hatranalphabet) 阿拉米字母 巴列维文 安息语 凯提文 佉卢文 Khojki(英语:Khojki) Khudabadiscript(英语:Khudabadiscript) 线形文字A 线形文字B 吕西亚字母(英语:Lycianalphabet) Lydianalphabet(英语:Lydianalphabet) Mahajani(英语:Mahajani) 望加锡文(英语:Makassareselanguage) Mandaicalphabet(英语:Mandaicalphabet) 摩尼字母 象雄语 Meitheiscript(英语:Meitheiscript) 麦罗埃字母 马拉地文(英语:Modialphabet) 木尔坦文(英语:Multanialphabet) 纳巴泰字母 欧甘字母 古匈牙利字母 古意大利字母 古彼尔姆文 古波斯楔形文字 粟特字母 突厥字母 帕米瑞拉文字(英语:Palmyrenealphabet) 八思巴字母 腓尼基字母 巴列维文字 卢恩字母 夏拉达文 悉昙文字 粟特字母 南阿拉伯字母 索永布字母 贝贝因字母 塔卡里文字(英语:Takrialphabet) 西夏文 乌加里特字母 札那巴札尔方形字母 标记文字 杜普洛伊速记(英语:Duployanshorthand) 萨顿手语谱写 符号 Unicode中的宗教与政治符号(英语:ReligiousandpoliticalsymbolsinUnicode) 货币符号 Unicode中的数学运算符与符号(英语:MathematicaloperatorsandsymbolsinUnicode) Unicode中的音标符号 表情包标 查论编字符编码早期电信 电报电码(英语:Telegraphcode) 库克与惠斯通(英语:CookeandWheatstonetelegraph) 摩斯 非拉丁字母(英语:Morsecodefornon-Latinalphabets) 日文(英语:Wabuncode) 中文 西里尔字母(英语:RussianMorsecode) 韩文(英语:SKATS) 博多与莫瑞 Fieldata(英语:Fieldata) ASCII ISO/IEC646 BCDIC(英语:BCD(characterencoding)) 电传文讯(英语:Teletex)与电传视频(英语:Videotex)/电视信息 T.51/ISO/IEC6937(英语:T.51/ISO/IEC6937) ITUT.61(英语:ITUT.61) ITUT.101(英语:Videotexcharacterset) 世界系统电传文讯(英语:WorldSystemTeletext) 字符集(英语:Teletextcharacterset) ISO/IEC8859 现行 -1(西欧语言) -2(中欧语言) -3(马耳他文/世界文) -4(北欧语言) -5(西里尔字母) -6(阿拉伯文) -7(希腊文) -8(希伯来文) -9(土耳其文) -10(北日耳曼语支) -11(泰文) -13(波罗的语族) -14(凯尔特语族) -15(新西欧语言) -16(罗马尼亚文) 废止 -12(梵文) 提议 KOI-8西里尔字母(英语:ISO-IR-111) 萨米文(英语:ISO-IR-197) 改编 威尔士文(英语:ISO-IR-182) 巴伦支西里尔字母(英语:ISO-IR-200) 爱沙尼亚文(英语:Codepage922) 乌克兰西里尔字母(英语:Codepage1124) 书目 MARC-8(英语:MARC-8) ANSEL(英语:ANSEL) CCCII/EACC ISO5426(英语:ISO5426) ISO5427(英语:ISO5427) ISO5428(英语:ISO5428) ISO6438 ISO6862(英语:ISO6862) 国家标准 ArmSCII BraSCII(英语:BraSCII) CNS11643 DIN66003(英语:DIN66003) ELOT927(英语:ELOT927) GOST10859(英语:GOST10859) GB2312 GB12052 GB18030 HKSCS ISCII JISX0201 JISX0208 JISX0212(英语:JISX0212) JISX0213(英语:JISX0213) KOI-7(英语:KOI-7) KPS9566 KSX1001 KSX1002(英语:KSX1002) LST1564(英语:LST1564) LST1590-4(英语:LST1590-4) PASCII ShiftJIS SI960(英语:SI960) TIS-620(英语:ThaiIndustrialStandard620-2533) TSCII VISCII(英语:VISCII) VSCII YUSCII(英语:YUSCII) ISO/IEC2022 ISO/IEC8859 ISO/IEC10367(英语:ISO/IEC10367) EUC ISO-IR-165 macOS代码页 亚美尼亚文(英语:MacOSArmenian) 阿拉伯文 巴伦支西里尔字母(英语:MacOSBarentsCyrillic) 凯尔特语族(英语:MacOSCeltic) 中欧语言 克罗地亚文(英语:MacOSCroatianencoding) 西里尔字母(英语:MacOSCyrillicencoding) 梵文(英语:MacOSDevanagariencoding) 波斯文(英语:MacFarsiencoding) 字体X(英语:MacintoshFontXencoding) 盖尔文(英语:MacOSGaelic) 乔治亚文(英语:MacOSGeorgian) 希腊文(英语:MacGreekencoding) 古吉拉特文(英语:MacOSGujarati) 古木基文(英语:MacOSGurmukhi) 希伯来文(英语:MacOSHebrew) 冰岛文(英语:MacOSIcelandicencoding) 因纽特文(英语:MacOSInuit) 键盘(英语:MacOSKeyboardencoding) 拉丁文(英语:MacintoshLatinencoding) 马耳他文/世界文(英语:MacOSMaltese/Esperantoencoding) 欧甘字母(英语:MacOSOgham) 罗曼语族 罗马尼亚文(英语:MacOSRomanianencoding) 萨米文(英语:MacOSSámi) 土耳其文(英语:MacOSTurkishencoding) 土耳其西里尔字母(英语:MacOSTurkicCyrillic) 乌克兰文(英语:MacOSUkrainianencoding) VT100(英语:VT100encoding) DOS代码页 437 668(英语:Codepage668) 708(英语:Codepage708) 720(英语:Codepage720) 737(英语:Codepage737) 770(英语:Codepage770) 773(英语:Codepage773) 775(英语:Codepage775) 776(英语:Codepage776) 777(英语:Codepage777) 778(英语:Codepage778) 850(英语:Codepage850) 851(英语:Codepage851) 852(英语:Codepage852) 853(英语:Codepage853) 855(英语:Codepage855) 856(英语:Codepage856) 857(英语:Codepage857) 858(英语:Codepage858) 859(英语:Codepage859) 860(英语:Codepage860) 861(英语:Codepage861) 862(英语:Codepage862) 863(英语:Codepage863) 864(英语:Codepage864) 865(英语:Codepage865) 866(英语:Codepage866) 867(英语:Codepage867) 868(英语:Codepage868) 869(英语:Codepage869) 897(英语:Codepage897) 899(英语:Codepage899) 903(英语:Codepage903) 904(英语:Codepage904) 932(英语:Codepage932(IBM)) 936(英语:Codepage936(IBM)) 942(英语:Codepage942) 949(英语:Codepage949(IBM)) 950 951(英语:Codepage951) 1040(英语:Codepage1040) 1042(英语:Codepage1042) 1043(英语:Codepage1043) 1046(英语:Codepage1046) 1098(英语:Codepage1098) 1115(英语:Codepage1115) 1116(英语:Codepage1116) 1117(英语:Codepage1117) 1118(英语:Codepage1118) 1127(英语:Codepage1127) 3846(英语:Codepage3846) ABICOMP(英语:ABICOMPcharacterset) CSIndic(英语:CSIndiccharacterset) CSXIndic(英语:CSXIndiccharacterset) CSX+Indic(英语:CSX+Indiccharacterset) CWI-2(英语:CWI-2) 伊朗系统(英语:IranSystemencoding) 卡梅尼茨(英语:Kamenickýencoding) 马索维亚(英语:Mazoviaencoding) MIK(英语:MIK(characterset)) IBMAIX代码页 895(英语:Codepage895) 896(英语:Codepage896) 912(英语:Codepage912) 915(英语:Codepage915) 921(英语:Codepage921) 922(英语:Codepage922) 1006(英语:Codepage1006) 1008(英语:Codepage1008) 1009(英语:Codepage1009) 1010(英语:Codepage1010) 1012(英语:Codepage1012) 1013(英语:Codepage1013) 1014(英语:Codepage1014) 1015(英语:Codepage1015) 1016(英语:Codepage1016) 1017(英语:Codepage1017) 1018(英语:Codepage1018) 1019(英语:Codepage1019) 1124(英语:Codepage1124) 1133(英语:Codepage1133) MicrosoftWindows代码页(英语:Windowscodepage) CER-GS(英语:CER-GS) 932(英语:Codepage932(MicrosoftWindows)) 936 GBK 950 1169(英语:Codepage1169) ExtendedLatin-8(英语:ExtendedLatin-8) 1250(英语:Windows-1250) 1251(英语:Windows-1251) 1252 1253(英语:Windows-1253) 1254(英语:Windows-1254) 1255(英语:Windows-1255) 1256(英语:Windows-1256) 1257(英语:Windows-1257) 1258(英语:Windows-1258) 1270(英语:Windows-1270) 西里尔字母+芬兰文(英语:WindowsCyrillic+Finnish) 西里尔字母+法文(英语:WindowsCyrillic+French) 西里尔字母+德文(英语:WindowsCyrillic+German) 希腊语变音符号(英语:WindowsPolytonicGreek) EBCDIC代码页 37(英语:Codepage37) EBCDIC中的日文(英语:JapaneselanguageinEBCDIC) DKOI(英语:DKOI) DEC终端(VTx(英语:VT220)) MCS(英语:MultinationalCharacterSet) NRCS(英语:NationalReplacementCharacterSet) 加拿大法文(英语:Codepage1020) 瑞士文(英语:Codepage1021) 西班牙文(英语:Codepage1023) 英国英文(英语:Codepage1101) 荷兰文(英语:Codepage1102) 芬兰文(英语:Codepage1103) 法文(英语:Codepage1104) 挪威文/丹麦文(英语:Codepage1105) 瑞典文(英语:Codepage1106) 挪威文/丹麦文(替代)(英语:Codepage1107) 8位希腊文(英语:Codepage1287) 8位土耳其文(英语:Codepage1288) SI960(英语:SI960) 希伯来文(英语:DECHebrew) 特殊图形(英语:DECSpecialGraphics) 技术(英语:DECTechnicalCharacterSet) 特定平台 1057(英语:Codepage1057) Acorn(英语:RISCOScharacterset) Adobe标准(英语:PostScriptStandardEncoding) AdobeLatin1(英语:PostScriptLatin1Encoding) AmstradCPC(英语:AmstradCPCcharacterset) AppleII(英语:AppleIIcharacterset) 雅达利信息交换标准码(英语:ATASCII) 雅达利ST(英语:AtariSTcharacterset) BICS(英语:BitstreamInternationalCharacterSet) 卡西欧计算机(英语:Casiocalculatorcharactersets) CDC(英语:CDCdisplaycode) CompucolorII(英语:CompucolorIIcharacterset) CP/M+(英语:AmstradCP/MPluscharacterset) DECRADIX50(英语:DECRADIX50) DECMCS(英语:MultinationalCharacterSet)/NRCS(英语:NationalReplacementCharacterSet) DG国际(英语:DGInternational) Fieldata(英语:Fieldata) GEM(英语:GEMcharacterset) GSM03.38(英语:GSM03.38) HPRoman(英语:HPRoman) HPFOCAL(英语:FOCALcharacterset) HPRPL(英语:RPLcharacterset) SQUOZE(英语:SQUOZE) LICS(英语:LotusInternationalCharacterSet) LMBCS(英语:LotusMulti-ByteCharacterSet) MSX(英语:MSXcharacterset) NECAPC(英语:NECAPCcharacterset) NeXT(英语:NeXTcharacterset) PETSCII(英语:PETSCII) SEGASC-3000(英语:SegaSC-3000characterset) 夏普计算机(英语:Sharppocketcomputercharactersets) 夏普MZ(英语:SharpMZcharacterset) 辛克莱QL(英语:SinclairQLcharacterset) 符号 电传文讯(英语:Teletextcharacterset) 德州仪器计算机(英语:TIcalculatorcharactersets) TRS-80(英语:TRS-80characterset) 文图拉国际(英语:VenturaInternational) WISCII(英语:WangInternationalStandardCodeforInformationInterchange) XCCS(英语:XeroxCharacterCodeStandard) ZX80(英语:ZX80characterset) ZX81(英语:ZX81characterset) ZXSpectrum(英语:ZXSpectrumcharacterset) Unicode/ISO/IEC10646 UTF-1 UTF-7 UTF-8 UTF-16 UTF-32 UTF-EBCDIC(英语:UTF-EBCDIC) GB18030 BOCU-1 CESU-8 SCSU TACE16(英语:TamilAllCharacterEncoding) Unicode编码比较(英语:ComparisonofUnicodeencodings) TeX排版系统 科克(英语:Corkencoding) LY1(英语:LY1encoding) OML(英语:OMLencoding) OMS(英语:OMSencoding) OT1(英语:OT1encoding) 其他代码页 ABICOMP(英语:ABICOMPcharacterset) ASMO449(英语:ASMO449) Big5 APL符号数字编码(英语:DigitalencodingofAPLsymbols) ISO-IR-68(英语:ISO-IR-68) ARIBSTD-B24 HZ(英语:HZ(characterencoding)) IEC-P27-1(英语:IEC-P27-1) INIS 7比特(英语:INIScharacterset) INIS-8(英语:8位元) ISO-IR-169(英语:ISO-IR-169) ISO2033(英语:ISO2033) KOI -R -RU(英语:KOI8-RU) -U 今昔文字镜 SEASCII(英语:StanfordExtendedASCII) Stanford/ITS(英语:Stanford/ITScharacterset) TRON(英语:TRON(encoding)) 统合韩文代码(英语:UnifiedHangulCode) 控制字符 摩斯电码专用代码(英语:ProsignsforMorsecode) C0与C1控制字符 ISO/IEC6429 JISX0211(英语:JISX0211) Unicode控制字符 空白字符 相关条目 CCSID(英语:CCSID) HTML字符编码 字符集探测 中日韩统一表意文字 硬件代码页(英语:Hardwarecodepage) 磁性墨水字符标识符(英语:Magneticinkcharacterrecognition) 乱码 可变长度编码(英语:Variable-widthencoding) 字符集 查论编肯·汤普逊操作系统 Unix 贝尔实验室九号项目 编程语言 B语言 Bon(英语:Bon(programminglanguage)) C语言 Go 软件 Belle(英语:Belle(chessmachine)) QED(英语:QED(texteditor)) ed Sam(英语:Sam(texteditor)) 星际旅行(1969年游戏) Thompsonshell 字符编码 UTF-8 取自“https://wiki.kfd.me/w/index.php?title=UTF-8&oldid=73706675” 分类:​Unicode转换格式隐藏分类:​CS1英语来源(en)自2018年12月需补充来源的条目拒绝当选首页新条目推荐栏目的条目粗劣翻译含有英语的条目使用RFC魔术链接的页面使用ISBN魔术链接的页面 导航菜单 个人工具 没有登录讨论贡献创建账号登录 命名空间 条目讨论 大陆简体 不转换简体繁體大陆简体香港繁體澳門繁體大马简体新加坡简体臺灣正體 查看 阅读编辑查看历史 更多 搜索 导航 首页分类索引特色内容新闻动态最近更改随机条目资助维基百科 帮助 帮助维基社群方针与指引互助客栈知识问答字词转换IRC即时聊天联络我们关于维基百科 工具 链入页面相关更改上传文件特殊页面固定链接页面信息引用本页维基数据项目 打印/导出 下载为PDF可打印版本 其他语言 العربيةAzərbaycancaБългарскиবাংলাBosanskiCatalàČeštinaЧӑвашлаDanskDeutschΕλληνικάEnglishEsperantoEspañolEuskaraفارسیFrançaisעבריתHrvatskiMagyarBahasaIndonesiaItaliano日本語한국어LietuviųLatviešuമലയാളംBahasaMelayuNederlandsNorsknynorskNorskbokmålPolskiPortuguêsРусскийSlovenčinaSlovenščinaСрпски/srpskiSvenskaTürkçeУкраїнськаاردوTiếngViệt 编辑链接



請為這篇文章評分?