Задать вопрос
@Xe1ga

Как получить unicode строку из строки hex?

Есть hex-строка в БД. Необходимо расшифровать ее.
Строка большая, я прилагаю только часть ее "0x308218D806092A"
if __name__ == "__main__":
# sReverseHex = reverse_str(s[2:])
sByte = bytearray.fromhex(s[2:])
# print (chardet.detect(sByte))
sResult = sByte.decode("utf-16-be")
print(sResult)

код приводит к ошибке UnicodeDecodeError: 'utf16' codec can't decode bytes in position 1326-1327: illegal UTF-16 surrogate

Кодировки испробованы разные. chardet.detect(sByte) дал результат
{'confidence': 0.0, 'language': None, 'encoding': None}
  • Вопрос задан
  • 335 просмотров
Подписаться 1 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Есть стандартный модуль bas64. В его составе есть функции b16encode и b16decode.
Это правильный способ закодировать и раскодировать строку в hex и обратно.
Если у вас это было сделано иначе, то нужно разбираться как было закодировано.
Поэтому я и спросил откуда берется строка и просил привести пример побольше, чем то, что вы написали.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
03 февр. 2025, в 16:26
30000 руб./за проект
03 февр. 2025, в 16:15
50000 руб./за проект
03 февр. 2025, в 15:59
30000 руб./за проект