2016-03-31 12 views
0

私は、Python 3.4で、次の16進文字列をデコードする問題に直面している:のPython 3.4デコードHEX文字列

b'"\x00\x08\x00\x83\x80\x00\x00\x00\x86\x11\x1dBA\x8c\xdb\xc0\\p\[email protected]\x00\x00\x00' 

私はシンプルにしようとしている:

data = b'"\x00\x08\x00\x83\x80\x00\x00\x00\x86\x11\x1dBA\x8c\xdb\xc0\\p\[email protected]\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 

私は問題は何ができるか見当もつかない。

+0

よく、あなたはどのキャラクターにデコードすると思いますか? –

+0

残念ながらそれが問題です。 GPSデバイスからこのデータを受信して​​いますが、最終的な文字列が何であるか分かりません。 –

+0

あなたはそれが文字列であることさえ確信していますか?多分それは数値であると思われている –

答えて

0

GPSデバイスには多くの通信プロトコルがあります。多くのデバイスがNMEA0183を使用していますが、これはプレーンテキストプロトコルであり、これは明らかにプレーンテキストではありません。

ms-windowsを実行していない場合は、GPSがgpsdでサポートされているかどうかを確認する必要があります。これは、GPSからの信号を理解できるものに変換します。それは利用可能なPythonバインディングを持っています。