Кодировка python3 заменяет символы юникода

Согласно документации, следующая команда

'Brückenspinne'.encode("utf-8",errors='replace')

Должен дать мне байтовую последовательностьb'Br??ckenspinne'. Однако символы Юникода не заменяются, но тем не менее кодируются:

b'Br\xc3\xbcckenspinne'

Можете ли вы сказать мне, как я на самом деле устраняю символы Юникода? (Я использую замену для целей тестирования, я намерен использовать 'xmlcharrefreplace' позже. Честно говоря, я хочу преобразовать символы юникода в их xmlcharref, сохраняя все в виде строки).

Спасибо.


person Lærne    schedule 15.05.2017    source источник


Ответы (1)


кодировка utf-8 может представлять символ ü; замены не происходит.

Используйте другую кодировку, которая не может представлять символ. Например ascii:

>>> 'Brückenspinne'.encode("ascii", errors='replace')
b'Br?ckenspinne'

>>> 'Brückenspinne'.encode("ascii", errors='xmlcharrefreplace')
b'Brückenspinne'
person falsetru    schedule 15.05.2017