python - 将零填充字节转换为 UTF-8 字符串

标签 python unicode utf-8 byte strncpy

我是 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/

相关文章:

python - Python中本地网络的IP地址/主机名列表

Python:使用正则表达式从字符串中删除\u200b

python - Tornado set_secure_cookie unicode 错误

Python zlib 输出,如何恢复出 mysql utf-8 表?

php - 什么对 PHP 开发人员更好 - Unicode 还是 UTF-8?

Python,我想制作列表 json.dumped 但是,错误 'dict' 对象没有属性 'dumps'

python - 使用变量以点表示法指定对象属性

MySQL - 使用波兰语字符进行不区分重音的搜索 - UTF8

使用iconv在C中将Unicode代码点转换为UTF-8

python - 根据bool值不断更新tf.cond