UTF-8究竟是怎么編碼的
1.
UTF-8編碼是Unicode字符集的一種編碼方式(CEF),其特點(diǎn)是使用變長字節(jié)數(shù)(即變長碼元序列、變寬碼元序列)來編碼。一般是1到4個(gè)字節(jié),當(dāng)然,也可以更長。
為什么要變長呢?這可以理解為按需分配,比如一個(gè)字節(jié)足以容納所有的ASCII字符,那何必補(bǔ)一堆0用更多的字節(jié)來存儲呢?
實(shí)際上變長編碼有其優(yōu)勢也有其劣勢,優(yōu)勢是節(jié)省空間、自動糾錯(cuò)性能好、利于傳輸、擴(kuò)展性強(qiáng),劣勢是不利于程序內(nèi)部處理,比如正則表達(dá)式檢索;而UTF-32這樣等長碼元序列(即等寬碼元序列)的編碼方式就比較適合程序處理,當(dāng)然,缺點(diǎn)是比較耗費(fèi)存儲空間。
2.
那UTF-8究竟是怎么編碼的呢?也就是說其編碼算法是什么?