爲什麼學位符號與UTF-8不同於unicode?爲什麼學位符號與unicode的UTF-8不同?
據:http://www.utf8-chartable.de/和 http://www.fileformat.info/info/unicode/char/b0/index.htm
unicode是B0但UTF-8是C2 B0怎麼來的?
爲什麼學位符號與UTF-8不同於unicode?爲什麼學位符號與unicode的UTF-8不同?
據:http://www.utf8-chartable.de/和 http://www.fileformat.info/info/unicode/char/b0/index.htm
unicode是B0但UTF-8是C2 B0怎麼來的?
UTF-8是一種使用可變字節數(字節數取決於代碼點)來編碼UTF字符的方法。 U + 0080和U + 07FF之間
代碼點使用下面2個字節的encoding:
110xxxxx 10xxxxxx
其中x
表示的代碼點的比特被編碼。
讓我們來考慮U + 00B0。在二進制,0XB0是10110000.如果一個替代位到上面的模板,得到:
11000010 10110000
十六進制表示,這是爲0xC2 0XB0。
而且,至關重要的是,這只是對同一個Unicode代碼點U + 00B0的不同表示。 UTF-16使用0x00 0xB0(big-endian)或0xB0 0x00(little-endian),但UTF-8使用0xC2 0xB0(無endianness)。 – 2012-01-04 18:42:50
您提供的鏈接是非常有用的......謝謝 – 2012-01-04 21:08:33
@JonathanLeffler「無端」不正確的術語,但有趣 – 2017-11-09 01:41:47
Unicode(UTF-16和UTF-32)對該字符使用代碼點0x00B0
。 UTF-8不允許127以上的字符(0x007F
),因爲每個字節的高位被保留以指示該特定字符實際上是多字節字符。
基本的7位ASCII直接映射到UTF-8的前128個字符。必須通過設置高位並添加1個或多個額外的字節來描述任何值大於127十進制(7F十六進制)的字符。
UTF-8是Unicode的一種編碼。 UTF-16和UTF-32是Unicode的其他編碼。
Unicode爲每個字符定義了一個數字值;度數符號碰巧是0xB0或十進制的176。 Unicode沒有定義如何表示這些數字值。
UTF-8將值0xB0
編碼爲值爲0xC2 0xB0
的兩個連續八位位組(字節)。
根據字節順序,UTF-16對0x00 0xB0
或0xBo 0x00
編碼相同的值。
UTF-32將其編碼爲0x00 0x00 0x00 0xB0
或0xB0 0x00 0x00 0x00
,同樣取決於字節順序(我認爲其他順序也是可能的)。
NPE,Marc和Keith的答案很好,超出了我對這個主題的認識。儘管如此,在我意識到這是關於什麼之前,我不得不閱讀它們幾次。然後我看到這個網頁,它使我「點擊」。
在http://www.utf8-chartable.de/,你可以看到如下:
注意它是如何需要使用兩個字節的代碼一個字符。現在閱讀NPE接受的答案。
如果用戶無法看到該網站,它顯示0x7F(DELETE)爲UTF-8: '7F'和'0x80'
在UTF-8和UTF-16之間有數千個字符表示不同。什麼使你相信學位標誌值得特別待遇? – 2012-01-04 18:38:31
您需要了解Unicode及其各種編碼之間的差異。閱讀人們發佈的鏈接。 – tripleee 2012-01-04 18:43:21
@MikeNakis:我相信*所有* Unicode代碼點在UTF-8和UTF-16中有不同的表示形式。 – 2013-03-07 18:25:33