UTF-8(8位元,Universal Character Set/Unicode Transformation Format)是針對Unicode的一種可變長度字元編碼。它可以用來表示Unicode标準中的任何字元,而且其編碼中的第一個位元組仍與ASCII相容,使得原來處理ASCII字元的軟體無須或隻進行少部份修改後,便可繼續使用。是以,它逐漸成為電子郵件、網頁及其他存儲或傳送文字的應用中,優先采用的編碼。
UTF-8編碼字元理論上可以最多到6個位元組長,然而16位BMP字元最多隻用到3位元組長,Bigendian UCS-4位元組串的排列順序是預定的,位元組0xFE和OxFF在UTF-8編碼中從未用到。
UCS字元U+0000到U+007F(ASCII)被編碼為位元組0×00到0x7F(ASCIⅡ相容)。這意味着隻包含7位ASCIl字元的檔案在ASCIⅡ和UTF-8兩種編碼方式下是一樣的。
所有大于0x007F的UCS字元被編碼為一個有多個位元組的串,每個位元組都有标記位集。是以,ASCIl位元組(0x00-0x7F)不可能作為任何其他字元的一部分。表示非ASCIl字元的多位元組串的第一個位元組總是在0xC0到0XFD的範圍裡,并指出這個字元包含多少個位元組。多位元組串的其餘位元組都在0x80到0xBF範圍裡。這使得重新同步非常容易,并使編碼無國界,且很少受丢失位元組的影響。
UTF-8編碼規則:如果隻有一個位元組則其最高二進制位為0;如果是多位元組,其第一個位元組從最高位開始,連續的二進制位值為1的個數決定了其編碼的位元組數,其餘各位元組均以10開頭。
資料來源:
UTF-8 and Unicode
http://www.utf-8.com/麥廷琮編著.從零開始學Eclipse[M].北京:中國鐵道出版社,2010.12
Consortium T U . Unicode Standard, Version 5.0, The[J]. Pearson Schweiz Ag, 2006.