Декодировать байт с помощью UTF-8 - PullRequest
0 голосов
/ 29 октября 2018

Я сейчас запрашиваю систему kdb, и она возвращает данные в байтах. В частности, в одном столбце я получаю объект байта, который выглядит следующим образом

b'US $ to UK \xa3 (TTF)'

Если я хочу декодировать строковую версию этого, я могу сделать следующее, и это работает:

result = 'US $ to UK \xa3 (TTF)'.encode().decode()

Но я не мог найти способ декодировать объект байта, какие-либо предложения?

Я пробовал

b'US $ to UK \xa3 (TTF)'.decode() 

но это дает исключение, поскольку \ xa3 еще не закодирован, есть ли способ преобразовать этот объект байта в строковый литерал без декодирования?

1 Ответ

0 голосов
/ 29 октября 2018

Кодировка этой строки выглядит как ISO-8859-1 (a.k.a. Latin-1), а не UTF-8. Как только вы правильно декодируете строку, вы сможете работать с ней или кодировать ее в другую кодировку, например UTF-8.

raw = b'US $ to UK \xa3 (TTF)'
text = raw.decode('ISO-8859-1')
...