如何在十六进制NCR和UTF-8代码单元之间转换?
示例:“大红圈”表情符号表示Unicode代码点。在二进制中,它是:如何在十六进制NCR和UTF-8代码单元之间转换?,utf-8,utf,Utf 8,Utf,示例:“大红圈”表情符号表示Unicode代码点。在二进制中,它是: 00000001 11110101 00110100 如果您看一下,您可以看到这些位是如何插入到代码点的UTF-8编码中的 Scalar Value First Byte Second Byte Third Byte Fourth Byte 00000000 0xxxxxxx 0xxxxxxx 00000yyy yyxxxxxx
00000001 11110101 00110100
如果您看一下,您可以看到这些位是如何插入到代码点的UTF-8编码中的
Scalar Value First Byte Second Byte Third Byte Fourth Byte
00000000 0xxxxxxx 0xxxxxxx
00000yyy yyxxxxxx 110yyyyy 10xxxxxx
zzzzyyyy yyxxxxxx 1110zzzz 10yyyyyy 10xxxxxx
000uuuuu zzzzyyyy yyxxxxxx 11110uuu 10uuzzzz 10yyyyyy 10xxxxxx
所以你有:
000uuuuu zzzzyyyy yyxxxxxx as
00000001 11110101 00110100
插入位:
11110uuu 10uuzzzz 10yyyyyy 10xxxxxx =
11110000 10011111 10010100 10110100
以十六进制表示的是F0 9F 94 B4
另一方面,从UTF-8到代码点,检查第一个字节的最高有效位以查看使用了多少字节(从上表中可以清楚看出),然后取出相关位并将它们放在一起
奖金线性艺术:
000uuuuu zzzzyyyy yyxxxxxx as
00000001 11110101 00110100
│││││ ││││││││ │││││││└────────┐
│││││ ││││││││ ││││││└────────┐│
│││││ ││││││││ │││││└────────┐││
│││││ ││││││││ ││││└────────┐│││
│││││ ││││││││ │││└────────┐││││
│││││ ││││││││ ││└────────┐│││││
│││││ ││││││││ │└─────┐ ││││││
│││││ ││││││││ └─────┐│ ││││││
│││││ │││││││└──────┐││ ││││││
│││││ ││││││└──────┐│││ ││││││
│││││ │││││└──────┐││││ ││││││
│││││ ││││└──────┐│││││ ││││││
│││││ │││└───┐ ││││││ ││││││
│││││ ││└───┐│ ││││││ ││││││
│││││ │└───┐││ ││││││ ││││││
│││││ └───┐│││ ││││││ ││││││
││││└────┐││││ ││││││ ││││││
│││└────┐│││││ ││││││ ││││││
││└─┐ ││││││ ││││││ ││││││
│└─┐│ ││││││ ││││││ ││││││
└─┐││ ││││││ ││││││ ││││││
11110uuu 10uuzzzz 10yyyyyy 10xxxxxx =
11110000 10011111 10010100 10110100
您基本上是在问“UTF-8编码是如何工作的?”