Простым решением будет ascii():
string = 'Bitte überprüfen Sie, ob die Dokumente erfolgreich in System ' \
'eingereicht wurden, und löschen Sie dann die tatsächlichen Dokumente.'
print(ascii(string))
выход :
'Bitte \xfcberpr\xfcfen Sie, ob die Dokumente erfolgreich in System eingereicht wurden, und l\xf6schen Sie dann die tats\xe4chlichen Dokumente.'
Также для этого можно использовать unicode-escape
и raw-unicode-escape
(ссылка ):
string = 'Bitte überprüfen Sie, ob die Dokumente erfolgreich in System ' \
'eingereicht wurden, und löschen Sie dann die tatsächlichen Dokumente.'
print(string.encode('unicode-escape').decode('raw-unicode-escape'))
выход :
Bitte \xfcberpr\xfcfen Sie, ob die Dokumente erfolgreich in System eingereicht wurden, und l\xf6schen Sie dann die tats\xe4chlichen Dokumente.
Примечание: ascii()
экранирует не-ascii-символы с помощью \x
, \u
, \U
для 1 байта, 2 байтов и 4 байтов соответственно. В вашем случае вы видите \x
. Но попробуйте этот:
print(ascii('س')) # '\u0633'
Если вы действительно хотите преобразовать escape-последовательности \xhh
в \u00hh
, используйте re.sub()
в результате ascii()
:
import re
print(re.sub(r'\\x[a-f0-9]{2}', lambda x: r'\u00' + x.group()[-2:].upper(), ascii(string)))
выход :
'Bitte \u00FCberpr\u00FCfen Sie, ob die Dokumente erfolgreich in System eingereicht wurden, und l\u00F6schen Sie dann die tats\u00E4chlichen Dokumente.'
Вышеупомянутые подходы работают для экранирования любых символов, отличных от ascii, если вы собираетесь экранировать только эти три немецких алфавита и нет других символов, отличных от ascii, взгляните на str.translate()
.
person
SorousH Bakhtiary
schedule
15.07.2021
repr()
преобразовать его? - person sabik   schedule 15.07.2021