劉明亮 7077 字 5個月前

Unicode

(2 / 6)
登入後報錯可獲 3天VIP 免廣告——立即登入

WORDdata_utf16[]={0x6c49,0x5b57};\/\/UTF-16編碼

DWORDdata_utf32[]={0x6c49,0x5b57};\/\/UTF-32編碼

這裡用BYTE、WORD、DWORD分別表示無符號8位整數,無符號16位整數和無符號32位整數。UTF-8、UTF-16、UTF-32分別以BYTE、WORD、DWORD作為編碼單位。“漢字”的UTF-8編碼需要6個字節。“漢字”的UTF-16編碼需要兩個WORD,大小是4個字節。“漢字”的UTF-32編碼需要兩個DWORD,大小是8個字節。根據字節序的不同,UTF-16可以被實現為UTF-16LE或UTF-16BE,UTF-32可以被實現為UTF-32LE或UTF-32BE。下麵介紹UTF-8、UTF-16、UTF-32、字節序和BOM。

UTF-8

UTF-8以字節為單位對Uni進行編碼。從Uni到UTF-8的編碼方式如下:

Uni編碼(16進製)║UTF-8字節流(二進製)

000000-00007F║0xxxxxxx

000080-0007FF║110xxxxx10xxxxxx

000800-00FFFF║1110xxxx10xxxxxx10xxxxxx

010000-10FFFF║11110xxx10xxxxxx10xxxxxx10xxxxxx

UTF-8的特點是對不同範圍的字符使用不同長度的編碼。對於0x00-0x7F之間的字符,UTF-8編碼與ASCII編碼完全相同。UTF-8編碼的最大長度是4個字節。從上表可以看出,4字節模板有21個x,即可以容納21位二進製數字。Uni的最大碼位0x10FFFF也隻有21位。

請到𝐨𝐨𝐩.𝐭𝐰查看完整章節

例1:“漢”字的Uni編碼是0x6C49。0x6C49在0x0800-0xFFFF之間,使用用3字節模板了:1110xxxx10xxxxxx10xxxxxx。將0x6C49寫成二進製是:0110110001001001,用這個比特流依次代替模板中的x,得到:111001101011000110001001,即E6B189。

例2:Uni編碼0x20C30在0x010000-0x10FFFF之間,使用用4字節模板了:11110xxx10xxxxxx10xxxxxx10xxxxxx。將0x20C30寫成21位二進製數字(不足21位就在前麵補0):000100000110000110000,用這個比特流依次代替模板中的x,得到:11110000101000001011000010110000,即F0A0B0B0。

UTF-16

uni

UTF-16編碼以16位無符號整數為單位。我們把Uni

uni編碼記作U。編碼規則

如下:

如果U<0x10000,U的UTF-16編碼就是U對應的16位無符號整數(為書寫簡便,下文將16位無符號整數記作WORD)。

。xxxxxxxxxx111011yyyyyyyyyy011011:是就)製進二(碼編61-FTU的U,xxxxxxxxxxyyyyyyyyyy:式形製進二成寫'U將後然,00001x0-U='U算計先們我,00001x0≥U果如

。03CDx0348Dx0即,00001100001110111100001000011011:到得就,x的中板模代替次依位01後用,y的中板模代替次依位01前用。00001100001100001000:是製進二成寫,03C01x0到得,後00001x0去減,03C02x0碼編inU:如例。示表位製進二個02用以可定肯以所,fffffx0是值大最的'U,後00001x0去減,ffff01x0是位碼大最的inU?位製進二個02成寫被以可'U麼什為

。FFFDx0-00CDx0即,1111111111111011到0000000000111011是)製進二(圍範值取的DROW個二第。FFBDx0-008Dx0即,1111111111011011到0000000000011011是)製進二(圍範值取的DROW個一第,見可。111011是位6高的DROW個二第,011011是位6高的DROW個一第,DROW個兩有碼編61-FTU的FFFF01x0-00001x0碼編inU,則規述上照按

:)etagorruS(區理代為稱並,來下留保FFFDx0-008Dx0將者計設的碼編inU,來開分區碼編61-FTU的DROW個兩與碼編61-FTU的DROW個一將了為

代替位高║setagorruShgiH║F7BD-008D

代替用專位高║setagorruSesUetavirPhgiH║FFBD-08BD

代替位低║setagorruSwoL║FFFD-00CD

。碼編inU導推碼編61-FTU由麼怎看看便順,題問個這答解來們我?思意麼什是代替用專位高,麼那。DROW個二第的碼編61-FTU的DROW個兩是位碼的圍範個這指是就代替位低。DROW個一第的碼編61-FTU的DROW個兩是位碼的圍範個這指是就代替位高

個這將們我。FFFDx0FFBDx0到00CDx008BDx0是該應圍範碼編61-FTU的符字個這以所,FFFDx0-00CDx0是圍範值取的DROW個二第道知們我?內圍範麼什在碼編inU的它麼那,間之FFBDx0到08BDx0在DROW個一第的碼編61-FTU的符字個一果如


✅ 付款功能已修復,現在可以正常購買了 — 支援信用卡 · Apple Pay · Google Pay · WebATM · ATM 轉帳
😤 廣告總在最入戲的時候跳出來?
月付 $5 USD,升級 VIP 後全站所有頁面廣告立即全關——
不是只有這本書,是整個 oop.tw 每一頁、每一章,從此一路讀到底不被打斷。 $5 USD ≈ 一杯珍奶的錢,換一整個月零廣告清爽閱讀 · 隨時可取消
✅ 全站廣告全關 ✅ 工口專區全本解鎖 ✅ 月卡 $5 USD · 季卡 $13 USD · 年卡 $45 USD
⭐ 登入 / 免費註冊後升級
加我 LINE 好友,分享好書不錯過
第一時間獲得新書推薦、書單更新通知
立即加入
上一頁 書頁/目錄
/ 6 頁
下一頁
為本書評分(每位讀者可評一次,提交後無法修改
發表評論
匿名讀者 身份發表
讀者評論