Хотя невозможно точно определить , какую кодировку использовать, есть некоторая кодировка, которая не имеет недопустимых значений , например, latin1
, пробуя это на вашем компьютере. данные дают это:
s = b'\x0c\xd1\xe3\xf0\x0f\x03<\xa0\xa99\xee\x85I\xc8\xcb\xb0'
repr(s.decode('latin1'))
# "'\\x0cÑãð\\x0f\\x03<\\xa0©9î\\x85IÈË°'"
Документация пакета codecs
предоставляет вам полный список того, что вы можете указать для кодирования.
Тем не менее, я думаю, что вы задаете себе неправильный вопрос. Если показанный вами bytes
предназначен для обозначения га sh, то преобразование в str
на самом деле нежелательно, поскольку, поскольку вы экспериментируете сами, это также должно включать кодировку для того, чтобы это было «интерпретировано». Напротив, bytes
- это bytes
, и дополнительная кодировка не требуется. По этой же причине hashlib
работает в основном с bytes
.