Chuỗi của bạn là đã được mã hóa với một số mã hóa. Trước khi mã hóa nó thành ascii, bạn phải giải mã nó trước tiên.
Python là implicity cố gắng để giải mã nó (Đó là lý do tại sao bạn nhận được một UnicodeDecodeError
không UnicodeEncodeError
).
Bạn có thể giải quyết vấn đề bằng cách explicity giải mã bytestring bạn (bằng cách sử dụng mã hóa thích hợp) trước cố gắng để reencode nó để ascii.
Ví dụ:
s = s.decode('some_encoding').encode('ascii', 'replace')
Sử dụng đúng mã hóa chuỗi của bạn được mã hóa ở vị trí đầu tiên, thay vì 'some_encoding'
.
Bạn phải biết mã hóa chuỗi đang sử dụng trước khi bạn có thể giải mã chuỗi đó. Bạn lấy chuỗi từ đâu?