2016-03-31 26 views
0
Python 3.4 aşağıdaki onaltılık dize kodunu çözmek için sorunlar karşı karşıyayım

:Python 3.4 kod çözme HEX dize

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

ben basit ile çalışıyorum:

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

Ama alıyorum aşağıdaki hata:

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

Ben de UTF-8

geçmek için çalıştık
print(data.decode('utf-8')) 

Ama hata olarak hiçbir başarı ilegeçerli:

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

Ben sorun olabilir hiçbir ipucu var.

+0

Peki, karakterin şifresini çözmesini bekliyorsunuz? –

+0

Ne yazık ki sorun bu. Bu verileri bir GPS aygıtından alıyorum ve son dizenin ne olduğunu bilmiyorum. –

+0

Bir string olduğundan bile emin misiniz? Belki de bu rakamın –

cevap

0

GPS cihazları için birçok iletişim protokolü vardır. Bir çok cihaz NMEA0183'ü kullanıyor, ancak bu bir düz metin protokolüdür ve bu açıkça düz metin değildir.

Eğer ms-windows kullanmıyorsanız, GPS'inizin gpsd tarafından desteklenip desteklenmediğini kontrol etmelisiniz. GPS'den gelen sinyalleri anlaşılabilir bir şeye çevirir. Python bağlamaları mevcut.