【发布时间】:2017-02-04 07:10:16
【问题描述】:
我有一个返回 UTF-8 编码字符串的设备。我只能逐个字节地读取它,并且读取被一个值为 0x00 的字节终止。
我正在为其他人制作一个 Python 2.7 函数来访问我的设备并返回字符串。
在之前的设计中,当设备只返回 ASCII 时,我在循环中使用了这个:
x = read_next_byte()
if x == 0:
break
my_string += chr(x)
其中 x 是从设备读取的最新字节值。
现在设备可以返回一个 UTF-8 编码的字符串,但我不确定如何将返回的字节转换为 UTF-8 编码的字符串/unicode。
chr(x) 在 x>127 时会导致错误,这是可以理解的,所以我认为使用 unichr(x) 可能有效,但假设传递的值是完整的 unicode 字符值,但我只有 0-255 部分。
那么,如何将我从设备返回的字节转换为可以在 Python 中使用的字符串,并且仍然可以处理完整的 UTF-8 字符串?
同样,如果在 Python 中给我一个 UTF-8 字符串,我将如何将其分解为单个字节以发送到我的设备并仍然保持 UTF-8?
【问题讨论】:
标签: python python-2.7 unicode encoding utf-8