Итак, у меня есть NSData с сервера backend, мой инженер-разработчик говорит, что есть простая логика декодирования, и мне нужно получить второй байт.Формат кодировки команды LLDB po « 332»
Так что я превратили этот NSData в байт массива с помощью
const unsigned char *usageBuf = (unsigned char *)[keyData bytes];
Когда я распечатать его на LLDB, он выводит как:
(lldb) ро usageBuf «\ x16 \ 332d \ 336C \ xa2Jc \ x88./Q \ 374 \ 326 [\ x01 \ x01 \ xa8 \ 314 \ x96 \ x8d \ 320.c \ x8bѐ \ г \ xb7' \ 317 \ 366 \ 342 \ 206> \ x1fE \ 322e \ x91 \ 311 \ 354 \ 302 "
однако, когда я пытаюсь напечатать 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, но он просто говорит UTF-8 0x5C 0x33 0x33 0x32
, поэтому мне, должно быть, не хватает некоторых головоломок, пожалуйста, помогите, спасибо!
так как я знаю, что это Октябрь? UTF8 основан на oct? – Wingzero
Я спрашиваю об этом, потому что первый байт равен \ x16, а второй - \ 332, тогда третий байт равен 'd', поэтому '\ x16' и 'd' кажутся шестнадцатеричными, но \ 332 - октябрь, не должны ли они быть последовательной базой/форматом? например когда я печатаю useBuf, он дает «\ x16 \ xdad» – Wingzero
Проверьте код для LLDB. Он выбирает формат вывода. – Avi