我是 unpacking几个包含 's'
的结构类型来自 C 的字段。这些字段包含由 strncpy
处理的零填充 UTF-8 字符串在 C 代码中(注意这个函数的退化行为)。如果我对字节进行解码,我会得到一个带有大量 NUL
字符的 unicode 字符串。
>>> b'hiya\0\0\0'.decode('utf8')
'hiya\x00\x00\x00'
我的印象是尾随零字节是 UTF-8 的一部分,会被自动删除。
删除零字节的正确方法是什么?
最佳答案
使用 str.rstrip()
删除尾随的 NUL:
>>> 'hiya\0\0\0'.rstrip('\0')
'hiya'
关于python - 将零填充字节转换为 UTF-8 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5074043/