Я распаковываю несколько структур, содержащих 's'
введите поля из C. Поля содержат заполненные нулями строки UTF-8, обрабатываемые strncpy
в коде C (обратите внимание на рудиментарное поведение этой функции). Если я декодирую байты, я получаю строку юникода с большим количеством символов NUL
в конце.
>>> b'hiya\0\0\0'.decode('utf8')
'hiya\x00\x00\x00'
У меня сложилось впечатление, что конечные нулевые байты являются частью UTF-8 и будут автоматически удалены.
Как правильно удалить нулевые байты?
ctypes.c_char_p
, который преобразует строки C в Pythonbytes
при вводе. См. чтение структуры в python из созданной структуры в c - person jfs   schedule 07.11.2015