Có ai giải thích cho tôi hành vi kỳ lạ này không? Tôi hy vọng cả hai phương pháp thay thế sẽ hoạt động hoặc không hoạt động cùng một lúc. Có phải chỉ là tôi hay có ai không tìm thấy điều này để kết hợp không?Hành vi lạ của re.sub với các chuỗi 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)
''
(Xin lưu ý rằng tôi không yêu cầu một lời giải thích về việc tại sao u'è'.replace ("\ xe0", "") đặt ra một lỗi!)
'unicode.replace' không giống phương thức' re.sub'. – Daenyth
Tất nhiên. Và quan điểm của tôi là họ nên cư xử mạch lạc cho cùng một yếu tố đầu vào. – luke14free
Đó là những câu hỏi như thế này dẫn đến việc thực thi chặt chẽ hơn các chuỗi Unicode so với Byte trong Python 3. –