"\332" 的LLDB po命令编码格式
LLDB po command encoding format of "\332"
所以我从后端服务器得到了一个 NSData,我的后端工程师说有一个简单的解码逻辑,我必须得到第二个字节。
所以我通过
将这个 NSdata 转换为字节数组
const unsigned char *usageBuf = (unsigned char *)[keyData bytes];
当我在 LLDB 上打印它时,它输出如下:
(lldb) po usageBuf
"\x162d6C\xa2Jc\x88./Q46[\x01\x01\xa84\x96\x8d0.c\x8bѐ\r\xb7'7626>\x1fE2e\x91142"
然而,当我尝试打印 usageBuf[1] 时,它就像:
(lldb) po usageBuf[0]
'\x16'
(lldb) po usageBuf[1]
'\xda'
(lldb) po/x usageBuf[1]
0xda
(lldb) po usageBuf[2]
'd'
我很困惑'\332'怎么变成'\xda'?我搜索了UTF8 table,但它只是说UTF-8 0x5C 0x33 0x33 0x32
,所以我一定是遗漏了一些谜题,请帮忙,谢谢!
这是一个基数问题:
十六进制 DA
== 十进制 218
== 十进制 332
所以我从后端服务器得到了一个 NSData,我的后端工程师说有一个简单的解码逻辑,我必须得到第二个字节。
所以我通过
将这个 NSdata 转换为字节数组const unsigned char *usageBuf = (unsigned char *)[keyData bytes];
当我在 LLDB 上打印它时,它输出如下:
(lldb) po usageBuf "\x162d6C\xa2Jc\x88./Q46[\x01\x01\xa84\x96\x8d0.c\x8bѐ\r\xb7'7626>\x1fE2e\x91142"
然而,当我尝试打印 usageBuf[1] 时,它就像:
(lldb) po usageBuf[0]
'\x16'
(lldb) po usageBuf[1]
'\xda'
(lldb) po/x usageBuf[1]
0xda
(lldb) po usageBuf[2]
'd'
我很困惑'\332'怎么变成'\xda'?我搜索了UTF8 table,但它只是说UTF-8 0x5C 0x33 0x33 0x32
,所以我一定是遗漏了一些谜题,请帮忙,谢谢!
这是一个基数问题:
十六进制 DA
== 十进制 218
== 十进制 332