繁体   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