У меня есть данные, которые я хотел бы декодировать, и его в Windows-1252 в основном я отправляю код в сокет, и он отправляет его обратно, и я должен декодировать сообщение и использовать IEEE-754 для получения определенного но я могу представить, как это все кодировать. Вот мой код.Проблемы с кодировкой Python
def printKinds():
test = "x40\x39\x19\x99\x99\x99\x99\x9A"
print (byt1Hex(test))
test = byt1Hex(test).replace(' ', '')
struct.unpack('<d', binascii.unhexlify(test))
print (test)
printKinds()
def byt1Hex(bytStr):
return ' '.join([ "%02X" % ord(x) for x in bytStr ])
Поэтому я использую это, а затем я должен получить значение от этого. Но он не работает, и я не могу понять, почему.
Ток на выходе я получаю
struct.unpack('<d', binascii.unhexlify(data))
struct.error: unpack requires a bytes object of length 8
Это ошибка ожидаемый выход я ищу это 25,1 , но когда я кодировать его, он фактически изменяет строку в неправильные значения так, когда Я делаю это:
print (byt1Hex(data))
Я надеюсь получить это.
40 39 19 99 99 99 99 9A
Но я на самом деле получить это вместо
78 34 30 39 19 99 99 99 99 9A
Предоставьте код, который мы действительно можем запустить. Покажите нам функцию byt1Hex. –
Что не работает? Что ожидается выход? Каков фактический результат? Что делает 'byt1Hex'? –
Недостаточно смысла интерпретировать текст cp1252 как двоичное значение IEEE-754: 'struct.unpack ('! D', 'abcdefgh'.encode (' cp1252 '))' – jfs