UTF8、UTF16、UTF32区别
UTF8、UTF16、UTF32都是unicode字符集的字符編碼。
UTF意思是unicode轉換格式(Unicode transform format),出現UTF8、UTF16、UTF32是出于要在內存中存儲字符的目的而對unicode字符編號進行編碼。
UTF8、UTF16、UTF32區別:(8、16、32可看做每種字符編碼存儲所需的最少的比特位數)
UTF8:存在單字節編碼,兼容ASCII;當編碼為一個字節,則設最高比特位為0;當編碼超過一個字節,則需要幾個字節,就在第一個字節從最高位開始令連續的幾個比特位為1,之后的字節最高位為10。
UTF32:用固定長度的字節存儲字符編碼,不管Unicode字符編號需要幾個字節,全部都用4個字節存儲,直接存儲Unicode編號。無需經過字符編號向字符編碼的轉換步驟,提高效率,用空間換時間。
UTF16:使用2或4個字節進行存儲。對于Unicode編號范圍在0~FFFF之間的字符,統一用兩個字節存儲,無需字符轉換,直接存儲Unicode編號。對于Unicode字符編號在10000-10FFFF之間的字符,UTF16用四個字節存儲,簡單說就是:將Unicode字符編號(3字節)分為兩部分,高位部分(Unicode字符編號中占1.5個字節)用一個值介于 D800-DBFF (110110yy yyyyyyyy,y為0/1)之間的雙字節存儲,低位部分用一個值介于 DC00-DFFF (110111xx xxxxxxxx,x為0/1)的雙字節存儲。而介于D800-DFFF之間的編碼在Unicode中是預留的,不安排字符,如果Unicode中有字符的編號是這之間的值,會引發沖突和歧義,很有可能一個不常見字符(存儲為四個字節)最后被讀成兩個常見字符(存儲為兩個字節)。
參考:https://blog.csdn.net/pipi1375/article/details/84784392
總結
以上是生活随笔為你收集整理的UTF8、UTF16、UTF32区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python+scrapy爬取斗鱼图片
- 下一篇: 浏览美国大学最新排名以便确立目标 备战雅