簡體   English   中英

TCP接收擴展的ASCII或utf-8字符

[英]TCP receiving extended ASCII or utf-8 characters

對於倒置問號¿我收到兩個字節[-62] [-65],但是我將如何獲得可讀的utf-8或ASCII字符編碼?

就是該字符的UTF8代碼。 反向問號是Unicode代碼點191 ,在utf8中為0xc2:0xbf

您正在將它們視為帶符號的字節。 例如, -62符號是256-62194無符號-這是十六進制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

那兩個字節可能 UTF-8

對於ASCII,您將需要特定的代碼頁。

“可讀”字符編碼到底是什么?

查看十六進制的字節值:

  • -62是0xc2
  • -65是0xbf

如果查找有關字形的Unicode信息 ,則可以看到,這實際上是構成反向問號字形的UTF-8編碼的兩個字節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM