č
не представлено u'\u00c4\u008d'
.Эти два шестнадцатеричных значения являются значениями в кодировке UTF-8, поэтому должны быть записаны в байтовой строке как '\xc4\x8d'
.Пример:
>>> s = '\xc4\x8d'
>>> s.decode('utf8')
u'\u010d'
>>> print(s.decode('utf8'))
č
Предупреждение: Ваш терминал должен быть настроен на кодировку, которая поддерживает символ для правильной печати, или вы увидите UnicodeEncodeError
.
Если по какой-либо причине у вас естьнеправильно декодированная строка Unicode, вы можете воспользоваться тем, что первые 256 кодовых точек Unicode соответствуют кодировке latin1
и исправить это:
>>> s = u'\u00c4\u008d'
>>> s.encode('latin1')
'\xc4\x8d'
>>> s.encode('latin1').decode('utf8')
u'\u010d'
>>> print(s.encode('latin1').decode('utf8'))
č
Если у вас неправильно декодирован Unicodeстрока, вы должны показать файл, который у вас есть, или код, который его читает, и решить эту проблему.