回覆列表
-
1 # 影片好笑
-
2 # 使用者8156776498399
UTF8是一種儲存和傳送的格式,如前所述,每個Unicode/UCS字元都以 2或4個bytes來儲存,看看以下的比較: 以"I am Chinese"為例 用ANSI儲存:12 Bytes 用Unicode/UCS2儲存:24 Bytes + 2 Bytes(header) 用UCS4儲存:48 Bytes + 4 Bytes(header) 以"我是華人"為例 用ANSI儲存:10 Bytes 用Unicode/UCS2儲存:10 Bytes + 2 Bytes(header) 用UCS4儲存:20 Bytes + 4 Bytes(header) 由此可見直接以Unicode/UCS的原始形式來儲存是一種極大的浪費,而且也不利於網際網路的傳輸(中文稍為合算一點^_^)。 有見及此,Unicode/UCS的壓縮形式--UTF8出現了,套用官方網站的首句話『UTF-8 stands for Unicode Transformation Format-8. It is an octet (8-bit) lossless encoding of Unicode characters.』,由於UTF也適用於編碼UCS,故亦可稱為『UCS transformation formats (UTF)』 UTF8是以8bits即1Bytes為編碼的最基本單位,當然也可以有基於16bits和32bits的形式,分別稱為UTF16和UTF32,但目前用得不多,而UTF8則被廣泛應用在檔案儲存和網路傳輸中。
應該是UTF-8。UTF-8定義:UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字元編碼,又稱萬國碼。優點:UTF-8編碼可以透過遮蔽位和移位操作快速讀寫。字元較時strcmp()和wcscmp()的返回結果相同,因此使排序變得更加容易。位元組FF和FE在UTF-8編碼中永遠不會出現,因此可以用來表明UTF-16或UTF-32文字(見BOM) UTF-8 是位元組順序無關的。缺點:無法從UNICODE字元數判斷出UTF-8文字的位元組數,因為UTF-8是一種變長編碼它需要用2個位元組編碼那些用擴充套件ASCII字符集只需1個位元組的字元 ISO Latin-1 是UNICODE的子集,但不是UTF-8的子集 8位字元的UTF-8編碼會被email閘道器過濾,因為internet資訊最初設計為7位ASCII碼。因此產生了UTF-7編碼。 UTF-8 在它的表示中使用值100xxxxx的機率超過50%, 而現存的實現如ISO 2022, 4873, 6429, 和8859系統,會把它錯認為是C1 控制碼。因此產生了UTF-7.5編碼。