Câu hỏi bắt đầu với một tiền đề sai:
Các ký tự ASCII nằm trong phạm vi bao gồm "\ x00" đến "\ x7F".
Câu trả lời được chấp nhận trước đây nay đã bị xóa hoạt động dưới hai sự hiểu nhầm hoàn toàn (1) mã hóa ==ngôn ngữ (2) mà mã hóa latin1 ánh xạ "\ x80" thành một ký tự Euro.
Trên thực tế, tất cả các mã hóa ISO-8859-x ánh xạ "\ x80" đến U + 0080 là một trong các ký tự điều khiển C1, không phải ký tự Euro. Chỉ 3 trong số các bảng mã đó (x in (7, 15, 16)) cung cấp ký tự Euro, là "\ xA4". Xem bài viết này trên Wikipedia .
Bạn cần biết dữ liệu của bạn đang ở dạng mã hóa nào. Nó được tạo trên máy gì? Làm sao? Ngôn ngữ mà nó được tạo (không nhất thiết là của bạn) có thể cung cấp cho bạn manh mối.
Lưu ý rằng "Dữ liệu của tôi được mã hóa bằng latin1" ở trên đó với "The cheque's in the mail" và "Tất nhiên anh sẽ yêu em vào buổi sáng". Dữ liệu của bạn có thể được mã hóa bằng một trong các mã hóa cp125x được tìm thấy trên nền tảng Windows. Lưu ý rằng tất cả chúng ngoại trừ cp1251 (Windows Cyrillic) ánh xạ "\ x80" với ký tự euro:
>>> ['\x80'.decode('cp125' + str(x), 'replace') for x in range(9)]
[u'\u20ac', u'\u0402', u'\u20ac', u'\u20ac', u'\u20ac', u'\u20ac', u'\u20ac', u'\u20ac', u'\u20ac']
Cập nhật đáp lại nhận xét của OP
Điều này hơi khó hiểu:Đầu tiên bạn nói
Nhưng sau này bạn nói
Vui lòng giải thích.
Chọn một kiểu mã hóa cp125x thích hợp:Tệp được tạo ở đâu (vị trí địa lý)? Văn bản được viết bằng (những) ngôn ngữ nào? Bất kỳ ký tự nào khác với đồng euro giả định có giá trị> "\ x7f"? Nếu vậy, những cái nào và ngữ cảnh nào chúng được sử dụng?
Cập nhật 2 Nếu bạn không "biết chương trình được viết như thế nào", cả bạn và chúng tôi đều không thể đưa ra ý kiến về việc liệu chương trình có luôn sử dụng "\ x80" cho ký tự euro hay không. Mặc dù làm theo cách khác sẽ là một sự ngu ngốc hoành tráng, nhưng không thể loại trừ điều đó.
Nếu văn bản được viết bằng tiếng Anh và / hoặc nó được viết ở Hoa Kỳ và / hoặc nó được viết trên nền tảng Windows, thì có thể chắc chắn rằng cp1252
là cách để đi ... cho đến khi bạn nhận được bằng chứng ngược lại, trong trường hợp đó bạn cần phải tự mình đoán mã hóa hoặc trả lời các câu hỏi (ngôn ngữ nào, địa phương nào).