Tôi có số này myfile (mà tôi đã dán, tôi hy vọng dữ liệu có liên quan với các sự cố đã tồn tại khi sao chép/dán). Tôi cố gắng đọc rằng tập tin với:Cách đọc "nguồn C, văn bản ISO-8859"
import codecs
codecs.open('myfile', 'r', 'utf-8').read()
Nhưng điều này mang lại:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe5 in position 7128: invalid continuation byte
Nếu tôi kiểm tra các tập tin:
» file myfile
myfile: C source, ISO-8859 text
- Làm thế nào tôi có thể đọc rằng loại tập tin (ISO-8859) trong python?
- Trong trường hợp chung, làm cách nào để biết tệp được mã hóa như thế nào?
Rất nhiều lần tôi đang xử lý các tệp chưa được tạo bởi tôi (tệp hệ thống, tệp ngẫu nhiên được tải xuống từ internet, tệp ngẫu nhiên do nhà cung cấp, khách hàng, ...) cung cấp: một đầu mối của mã hóa họ đang sử dụng. Đang ở trong một môi trường đa văn hóa (Châu Âu), rất khó để biết cách các tệp đó được mã hóa như thế nào. Hầu hết các lần, ngay cả những người cung cấp các tập tin không có đầu mối về mã hóa, có thể xảy ra đằng sau hậu trường của trình soạn thảo/công cụ lựa chọn. Làm thế nào để chắc chắn về mã hóa đang được sử dụng, trên cơ sở từng tệp?
Các tập tin mà bạn đưa vào pastebin.com không giữ lại các byte bạn gặp vấn đề với. –
Lạ: kiểm tra trực quan cho tôi biết họ đang ở đó (dòng 151) – dangonfast
Ah, thực sự, nhưng dữ liệu được mã hóa UTF8, vì vậy mã hóa Latin-1 tôi đã mở tệp mà không bận tâm, cũng như UTF8 không thành công. :-) Trình duyệt của bạn phải điều chỉnh mã hóa sau khi sử dụng trình phỏng đoán riêng của nó. –