UTF-8 - 维基百科,自由的百科全书
文章推薦指數: 80 %
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://zh.wikipedia.org/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
编辑链接
延伸文章資訊
- 1網頁(UTF-8) 於瀏覽器出現亂碼解法 - Tsung's Blog
PHP 送Header 告訴瀏覽器這頁是UTF-8 編碼. <?php header("Content-Type:text/html; charset=utf-8"); ?> 設定Apache ...
- 2html中Charset=UTF-8还是中文乱码解决辦法 - CSDN博客
utf-8是国际编码,包括汉字,建议都设置成utf-8,省心; 步主如下: 第一:定义网页显示编码。如果不定义网页编码,那么我们浏览网页的时候,IE会自动 ...
- 3SASS: 如何幫產生的css指定編碼為UTF-8 - 歐斯瑞
@charset "UTF-8";. 那在使用sass時要怎麼幫產生的css設定編碼呢? 只要打開專案設定檔config.rb,加上 ...
- 4HTML Charset - W3Schools
The UTF-8 Character Set ... UTF-8 is identical to ASCII for the values from 0 to 127. UTF-8 does ...
- 5html中+Charset=UTF-8還是中文亂碼+解決辦法 - 程式人生
utf-8是國際編碼,包括漢字,建議都設定成utf-8,省心; 步主如下: 第一:定義網頁顯示編碼。如果不定義網頁編碼,那麼我們瀏覽網頁的時候,IE會自動 ...