一句來自《三國》中的話——分久必合合久必分,各個字符集之間也存在的分久必合的現象。隨著國際標準iso10646規定的通用字符集(ucs,全稱universal mutiple-octet doded character set)的發布,各種字符集之間不統一和諧的問題就得到了改觀。
utf編碼,全稱是unicode transformer format,這種編碼是ucs的實際形式,它的分類是按照其基本長度所占用的位數而定,分為utf-8/16/32三種形式。utf可以說是其他字符集的集合,它使得其它字符集是交叉相容的,可以說,凡是將文字元號轉為ucs後再轉回原來的編碼,也不會丟失資訊。
ucs包含了現在所有的已知語言的字元,包含從拉丁文、希臘語到中文、韓文等象形文本,再到日文的平假名、片假名等眾多語系 。因此使用utf進行程式開發,絕對是程式國際化的首選,unicode將世界的語言統一起來,構成了最偉大的字符集。
1.utf-8字符集
utf-8保證了字母與數字都是乙個位元組,其他的文字用不定長編碼,最多占用6個位元組,它支援31位編碼。前64k的unicode(ucs-2)編成utf-8只需要3個位元組。
utf-8的最大優點:
能夠與128位以下編碼和單位元組處理軟體相容
utf-8的多位元組編碼沒有位元組錯亂問題。例如刪除半個漢字時(在某些軟體如cuteftp中)時不會導致其他文字亂碼
2.utf-16字符集
utf-8是變長編碼,每個unicode**點按照不同範圍,可能會存在著1-3個不同的位元組。
utf-16是相對固定的編碼,如果處理的內容在u200000範圍內,每個unicode**點都是16位的,超出的話,就會使用2個utf-16(也就是4個位元組)。同時utf-16還按照位的位元組高地分為utf-16be和utf-16le。
3.utf-32字符集
utf-32字符集始終固定,沒有utf-8/16的定位問題,每個unicode**點都是用32位表示(也就是4個位元組)。同樣,它也按照 位的位元組高地分為utf-32be和utf-32le。
結語:
utf可以說是各種文字的大雜燴,這樣讓各種字元融會貫通,只要通過簡單的定位,就可以實現對字串的各項操作了(utf-32不需要定位即可),但是utf-32是utf編碼家族占用空間最大的,在開發時候不應忽略這一點。
Unicode字符集詳解
一句來自 三國 中的話 分久必合合久必分,各個字符集之間也存在的分久必合的現象。隨著國際標準iso10646規定的通用字符集 ucs,全稱universal mutiple octet doded character set 的發布,各種字符集之間不統一和諧的問題就得到了改觀。utf編碼,全稱是un...
Unicode字符集和多字符集
由於各國語言的加入,ascii已經不能滿足資訊交流的需要,因此,為了能夠表示其它國家的文字,各國在ascii的基礎上制定了自己的字符集,它們正式的名稱應該是mbcs multi byte chactacter system,即多位元組字元系統 型別說明 unicode ansi 通用型別 字元wch...
雜記 Unicode字符集
unicode是字符集,但是微軟在windows上把unicode視為utf 16,即乙個字元佔2個位元組16位。utf 16是unicode的一種編碼規則,與此同時還有utf 8 utf 32。utf 8將一些字元編碼為1個位元組,一些字元編碼為2個位元組,一些字元編碼為3個位元組,一些字元編碼為...