91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

DBCS和UCS編碼相關

發布時間:2020-06-27 15:13:09 來源:網絡 閱讀:145 作者:xiesiyuana 欄目:開發技術
ASCII、GB2312、GBK到GB18030都是向下兼容的,其中GB2312、GBK到GB18030都屬于雙字節字符集(DBCS字符集)
Unicode至于ANSI兼容,例如“漢”字的unicode編碼是6C49,而GB編碼是BABA
Unicode學名是“Universal Multiple-Octet Coded Chasracter Set”,簡稱UCS
UCS只是規定如何編碼,并沒有規定如何傳輸、保存這個編碼。例如“漢”字的UCS編碼是6C49,
我可以用4個ascii數字來傳輸、保存這個編碼;也可以用utf-8編碼:3個連續的字節E6 B1 89來表示它。
關鍵在于通信雙方都要認可。UTF-8、UTF-7、UTF-16都是被廣泛接受的方案。


UTF-8就是以8位為單元對UCS進行編碼。從UCS-2到UTF-8的編碼方式如下:
UCS-2編碼(16進制) UTF-8 字節流(二進制) 0000 - 007F 0xxxxxxx 0080 - 07FF 110xxxxx 10xxxxxx 0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx
例如“漢”字的Unicode編碼是6C49。6C49在0800-FFFF之間,所以肯定要用3字節模板了:1110xxxx 10xxxxxx 10xxxxxx。將6C49寫成二進制是:0110 110001 001001,
 用這個比特流依次代替模板中的x,得到:11100110 10110001 10001001,即E6 B1 89。
 
 
 UTF-8以字節為編碼單元,沒有字節序的問題。UTF-16以兩個字節為編碼單元,在解釋一個UTF-16文本前,首先要弄清楚每個編碼單元的字節序。例如“奎”的Unicode編碼是594E,“乙”的Unicode編碼是4E59。如果我們收到UTF-16字節流“594E”,那么這是“奎”還是“乙”?
Unicode規范中推薦的標記字節順序的方法是BOM。BOM不是“Bill Of Material”的BOM表,而是Byte Order Mark。BOM是一個有點小聰明的想法:
在UCS編碼中有一個叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的編碼是FEFF。而FFFE在UCS中是不存在的字符,所以不應該出現在實際傳輸中。UCS規范建議我們在傳輸字節流前,先傳輸字符"ZERO WIDTH NO-BREAK SPACE"。
這樣如果接收者收到FEFF,就表明這個字節流是Big-Endian的;如果收到FFFE,就表明這個字節流是Little-Endian的。因此字符"ZERO WIDTH NO-BREAK SPACE"又被稱作BOM。
UTF-8不需要BOM來表明字節順序,但可以用BOM來表明編碼方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8編碼是EF BB BF(讀者可以用我們前面介紹的編碼方法驗證一下)。所以如果接收者收到以EF BB BF開頭的字節流,就知道這是UTF-8編碼了。
Windows就是使用BOM來標記文本文件的編碼方式的。


所以,“漢”字的gbk,utf8,utf16(小端),utf16(大端),二進制分別是

BA BA , EF BB BF E6 B1 89 ,FF FE 49 6C , FE FF 6C 49


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桓台县| 河东区| 安徽省| 巴彦淖尔市| 广平县| 右玉县| 营山县| 五常市| 图木舒克市| 迭部县| 栾川县| 阿巴嘎旗| 道真| 顺平县| 武穴市| 玉田县| 龙海市| 雅安市| 会泽县| 龙胜| 女性| 甘孜| 台江县| 唐山市| 天峻县| 多伦县| 包头市| 渭南市| 雷州市| 榆树市| 黔南| 宜阳县| 周宁县| 泊头市| 县级市| 湛江市| 库伦旗| 佛山市| 花莲县| 海丰县| 晋宁县|