【问题标题】:Python 3.4 decode HEX stringPython 3.4 解码 HEX 字符串
【发布时间】: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 有关系吗?基本上\x83utf8ascii 是无效字符,但我认为对latin 有效

标签: python hex decode utf8-decode


【解决方案1】:

GPS 设备有许多通信协议。许多设备使用 NMEA0183,但这是一个纯文本协议,这显然不是纯文本。

如果您没有运行 ms-windows,您应该检查gpsd 是否支持您的 GPS。它将来自 GPS 的信号转换成可以理解的东西。它具有可用的 Python 绑定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    • 2020-08-16
    • 2011-10-18
    • 2014-09-23
    • 2017-11-01
    • 1970-01-01
    相关资源
    最近更新 更多