Qualcuno potrebbe spiegarmi questo strano comportamento? Mi aspetterei che entrambi i metodi di sostituzione funzionino o meno allo stesso tempo. Sono solo io o c'è qualcuno che non lo trova coerente?Comportamento strano di re.sub con stringhe utf-8
>>> u'è'.replace("\xe0","")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)
>>> re.sub(u'è','\xe0','',flags=re.UNICODE)
''
(Si prega di notare che io non sto chiedendo una spiegazione del perché u'è'.replace ("\ xe0", "") genera un errore!)
'unicode.replace' non è lo stesso metodo di' re.sub'. – Daenyth
Ovviamente. E il mio punto è che dovrebbero comportarsi in modo coerente per gli stessi input. – luke14free
Sono domande come queste che hanno portato all'applicazione più rigorosa delle stringhe Unicode e Byte in Python 3. –