2011-02-08 93 views

回答

3

该字符的UTF8代码。 inverted question mark是Unicode代码点191,在UTF8中是0xc2:0xbf

您将它们视为带符号的字节。例如,-62有符号是256-62194 unsigned - 这是十六进制0xc2

同样,-65签名是256-65191无符号 - 这是十六进制0xbf

如果要将UTF8序列转换为代码点,可以使用下表。

 
    Range    Encoding Binary value 
    ----------------- -------- -------------------------- 
    U+000000-U+00007f 0xxxxxxx 0xxxxxxx 

    U+000080-U+0007ff 110yyyxx 00000yyy xxxxxxxx 
         10xxxxxx 

    U+000800-U+00ffff 1110yyyy yyyyyyyy xxxxxxxx 
         10yyyyxx 
         10xxxxxx 

    U+010000-U+10ffff 11110zzz 000zzzzz yyyyyyyy xxxxxxxx 
         10zzyyyy 
         10yyyyxx 
         10xxxxxx 

例如,你的0xc2:0xbf是二进制11000010 10111111其中第二壳体相匹配:

 
     11000010 10111111 
     ||||| |||||| 
     |||\\ ////// 
     ||| |||||||| 
    00000000 10111111 -> 0x00bf -> 191 
1

那些2个字节可能 UTF-8

为ASCII你需要一个特定的代码页。

什么是'可读'字符编码?

+0

ASCII没有代码页。它是7位。 – 2011-02-08 19:51:41

1

看那字节值十六进制:如果你看到了Unicode information有问题的字形

  • -62是为0xC2
  • -65是为0xBF

,你可以看到这是插入构成倒置问号字形的UTF-8编码的两个字节。