乙個UTF8漢字是三個位元組,為什麼這種工具把漢字轉成了 u4F60。這種 u4F60如何和二進位制換算?

時間 2021-06-02 00:14:41

1樓:Aetherus

你看到的%u4F60,前面的%u代表後面的4位16進製制數代表乙個unicode字元。它不是UTF-8編碼!

這裡大致說一下unicode和UTF-8的關係:unicode是一套字元形狀和char code(乙個整數)的對應關係,而UTF-8是unicode的char code在儲存和傳輸時的具體的位元組實現之一。其他比較常見的實現還有UTF-16(分BE和LE兩種)。

「你「這個漢字對應的unicode的char code是20320,用16進製表示就是4F60。可以看出要表示這個數值,至少需要2位元組。

UTF-8為了節省位元組數,ASCII字元都只用1個位元組,而其他字元按需要可能有2~4位元組不等。因此,UTF-8需要解決的乙個問題就是「從當前位元組開始,需要多少個位元組表示當前字元」。UTF-8是這麼玩的:

如果乙個字元需要n個位元組表示,則第乙個位元組的前n個bit都是1,第n+1位是0,剩餘位用來表示char code的最高的8-n-1個bit;後續位元組都以10開頭,剩餘bit用來組成char code。

例如「你」這個字的char code用2進製表示為:

0100 1111 0110 0000

可以看到需要16個bit。16 / 6 = 2,餘4,所以需要乙個頭外加兩個10開頭的位元組,共3位元組,所以第乙個位元組的前3個bit都是1,第四個bit是0,後兩個位元組都是10開頭:

1110.... 10...... 10......

然後我們把char code從低到高填進那些點的位置就行,位數不夠就補0:

11100100 10111101 10100000

用16進製表示就是e4bda0

聽到「房地產」三個字,第1個戳到你心的東西是什麼?

濤時雨落 因為是工程局出身,房地產首先代表我們主營業務,其次施工單位是處於房地產鏈條的基礎板塊。我理解的房地產可以分為房 地 產 房 老百姓最關心得東西了,明知很貴卻還要咬牙買的提前消費品 土豪除外 地 作為施工單位而言就是自己的戰場,而房地產公司而言代表著成本和收益的天花板。產 可以理解為產業鏈或...

乙個漢字兩位元組,是多大的字,一號 二號 還是其它字型大小?

troy351 佔的位元組是指這個字的編碼,就像學號,乙個人乙個學號。和你名字長短,性別,年齡,身高,體重,穿衣打扮沒有任何關係 如果你要通過學號找到乙個人需要乙份名單,同樣你要通過字的編碼顯示出來這個字需要乙份字型 Belleve 乙個漢字兩位元組儲存的是編碼,或者說表明這個字在某個 所有漢字的字...

如何以「三個人在森林裡」為開頭寫乙個故事?

泛科技花園 三個人在森林裡小心翼翼地走著,看穿著應是北邊來的壯漢。突然幾隻灰熊猛地衝出來想要吃了這三人。三人見狀,頓時警惕。為首的半禿腦袋說 立刻回村里發動全部村民捕殺灰熊!第二個大鬍子說 我們仨都有獵槍,直接幹就完事了奧利給!躲在後面的胖子早已瑟瑟發抖,他擠出微笑說道 為什麼我們不假裝灰熊已經被殺...