【发布时间】:2016-03-31 07:09:07
【问题描述】:
我在 python 3.4 中解码以下十六进制字符串时遇到问题:
b'"\x00\x08\x00\x83\x80\x00\x00\x00\x86\x11\x1dBA\x8c\xdb\xc0\\p\xfe@NR09G06654\x00\x00\x00'
我正在尝试一个简单的:
data = b'"\x00\x08\x00\x83\x80\x00\x00\x00\x86\x11\x1dBA\x8c\xdb\xc0\\p\xfe@NR09G06654\x00\x00\x00'
print(data.decode('ascii'))
但我收到以下错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 4: ordinal not in range(128)
我也试过改成UTF-8
print(data.decode('utf-8'))
但没有成功,因为错误是:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 4: invalid start byte
我不知道问题可能是什么。
【问题讨论】:
-
好吧,你希望角色解码成什么?
-
不幸的是,这就是问题所在。我正在从 GPS 设备接收这些数据,但我不知道最后的字符串是什么。
-
你确定它是一个字符串吗?也许它应该是一个数值
-
我正在尝试理解错误的含义。由于设备是中文的,字符串中可能有一些奇怪的字符
-
与this question 有关系吗?基本上
\x83对utf8和ascii是无效字符,但我认为对latin有效
标签: python hex decode utf8-decode