Python3 thay đổi hành vi unicode để từ chối cặp thay thế trong khi python2 không.Làm thế nào để thực hiện thay thế trong python2
Có một câu hỏi here
Nhưng nó không cung cấp một giải pháp làm thế nào để loại bỏ cặp thay thế trong python2 hoặc làm thế nào để làm đại diện thoát.
Python3 dụ:
>>> a = b'\xed\xa0\xbd\xe4\xbd\xa0\xe5\xa5\xbd'
>>> a.decode('utf-8', 'surrogateescape')
'\udced\udca0\udcbd你好'
>>> a.decode('utf-8', 'ignore')
'你好'
Các '\ cố định \ xa0 \ xbd' ở đây không phải là thích hợp utf-8 ký tự. Và tôi muốn bỏ qua chúng hoặc trốn thoát chúng.
Có thể thực hiện điều tương tự trong python2 không?
Chính xác bạn muốn làm gì? Nó không rõ ràng. Cung cấp một ví dụ. –
@MarkTolonen Tôi đã thêm một ví dụ. – lxyu
Tôi không thấy cách nào tốt hơn so với xử lý sau đối tượng unicode đã giải mã để xóa tất cả ký tự giữa '\ udc00' và '\ udfff'. –