TCP 接收扩展 ASCII 或 utf-8 字符

发布于 2024-10-16 13:20:20 字数 75 浏览 4 评论 0原文

对于倒问号 ¿ 我收到两个字节 [-62][-65] 但如何获得可读的 utf-8 或 ASCII 字符编码?

For inverted question mark ¿ I receive two bytes [-62][-65] but how would i get readable utf-8 or ASCII character encoding?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

七禾 2024-10-23 13:20:20

这是该字符的 UTF8 代码。 倒问号是Unicode代码点191< /code>,在 UTF8 中,是 0xc2:0xbf

您将它们视为带符号的字节。例如,有符号的 -62256-62 或无符号的 194 - 即十六进制 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

That is the UTF8 code for that character. The inverted question mark is Unicode code point 191 which, in UTF8, is 0xc2:0xbf.

You're seeing them as signed bytes. For example -62 signed is 256-62 or 194 unsigned - that's hex 0xc2.

Similarly, -65 signed is 256-65 or 191 unsigned - that's hex 0xbf.

If you want to convert your UTF8 sequence into a code point, you can use the table below.

    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

For example, your 0xc2:0xbf is binary 11000010 10111111 which matches the second case:

      11000010 10111111
         |||||   ||||||
         |||\\  //////
         ||| ||||||||
    00000000 10111111  ->  0x00bf  ->  191
看海 2024-10-23 13:20:20

这 2 个字节可能是 UTF-8

对于 ASCII,您需要特定的代码页。

到底什么是“可读”字符编码?

Those 2 bytes probably are UTF-8

For ASCII you would need a specific codepage.

And what exactly is a 'readable' char encoding?

濫情▎り 2024-10-23 13:20:20

查看十六进制的字节值:

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

如果您查找 Unicode 信息,您可以看到,这实际上是构成倒问号字形的 UTF-8 编码的两个字节。

Look at the byte values in hexadecimal:

  • -62 is 0xc2
  • -65 is 0xbf

If you look up the Unicode information for the glyph in question, you can see that this is, inded, the two bytes that make up the UTF-8 encoding of the inverted question mark glyph.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文