У меня есть файл, который представляет собой некоторый ясный текст шестнадцатеричных байтов (кроме первых 18 байтов), но кодировка файла - UTF-16
. Вот короткий дамп файла:Декодирование строк кодированных символов UTF-16.
00000000 ff fe 35 1f d3 bb 7a ef df 45 92 df be ff 33 c2 |..5...z..E....3.|
00000010 af c7 30 00 42 00 45 00 33 00 45 00 35 00 45 00 |..0.B.E.3.E.5.E.|
00000020 35 00 44 00 35 00 44 00 41 00 36 00 44 00 38 00 |5.D.5.D.A.6.D.8.|
00000030 42 00 41 00 30 00 37 00 39 00 42 00 46 00 34 00 |B.A.0.7.9.B.F.4.|
00000040 46 00 31 00 45 00 41 00 36 00 37 00 32 00 34 00 |F.1.E.A.6.7.2.4.|
00000050 42 00 39 00 43 00 42 00 41 00 42 00 45 00 44 00 |B.9.C.B.A.B.E.D.|
...
Я хотел бы прочитать этот файл построчно (он имеет \r\n
разрывы строк) и получить данные шестигранные из строки. Если это строка ASCII я мог бы просто сделать это:
a_line = '00112233445566778899'
hex_data = a_line.decode('hex')
Но поскольку это UTF-16, я получаю сообщение об ошибке при попытке Non-hexadecimal digit
этого подхода.
Мой вопрос: Как я могу загрузить строку кодированных шестнадцатеричных символов UTF-16 в виде шестнадцатеричных данных?