2016-03-31 4 views
0

Je suis face à des problèmes pour décoder la chaîne hexagonale suivante en python 3.4:Python 3.4 decode chaîne HEX

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

Je suis en train avec un simple:

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')) 

Mais je reçois le erreur suivant:

UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 4: ordinal not in range(128) 

J'ai aussi essayé de changer en UTF-8

print(data.decode('utf-8')) 

Mais sans succès que l'erreur est:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 4: invalid start byte 

Je n'ai aucune idée ce que le problème pourrait être.

+0

Eh bien, à quoi vous attendez-vous que le personnage décode? –

+0

Malheureusement, c'est le problème. Je reçois ces données d'un appareil GPS et je ne sais pas quelle est la chaîne finale. –

+0

êtes-vous même sûr que c'est une chaîne? peut-être que c'est supposé être une valeur numérique –

Répondre

0

Il existe de nombreux protocoles de communication pour les périphériques GPS. Un grand nombre de périphériques utilisent NMEA0183, mais il s'agit d'un protocole en texte brut et ce n'est clairement pas du texte brut.

Si vous n'utilisez pas MS-Windows, vous devez vérifier si votre GPS est pris en charge par gpsd. Il traduit les signaux du GPS en quelque chose de compréhensible. Il a des liaisons Python disponibles.