Trên hệ thống tệp của tôi (Windows 7) tôi có một số tệp văn bản (Đây là các tệp tập lệnh SQL, nếu có vấn đề).
Khi được mở bằng Notepad ++ , trong menu "Mã hóa", một số trong số chúng được báo cáo là có mã hóa "UCS-2 Little Endian" và một số "UTF-8 không có BOM".
Sự khác biệt ở đây là gì? Tất cả chúng dường như là các kịch bản hoàn toàn hợp lệ. Làm thế nào tôi có thể biết mã hóa tập tin có gì mà không có Notepad ++?
enca
và chardet
cho các hệ thống POSIX.
iconv
đặc biệt là hữu ích cho mục đích này. Về cơ bản, bạn lặp lại các chuỗi ký tự / văn bản bị hỏng thông qua các bảng mã khác nhau để xem cái nào hoạt động. Bạn thắng, khi các nhân vật không còn bị hỏng nữa. Tôi muốn trả lời ở đây, với một ví dụ lập trình. Nhưng thật không may, đó là một câu hỏi được bảo vệ.
chardet
hoặc chardetect
không có sẵn trên hệ thống của bạn, thì bạn có thể cài đặt gói thông qua trình quản lý gói của mình (ví dụ: apt search chardet
trên ubfox / debian, gói thường được gọi python-chardet
hoặc python3-chardet
) hoặc qua pip với pip install chardet
(hoặc pip install cchardet
cho phiên bản tối ưu hóa c nhanh hơn).