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 ++?
encavà chardetcho 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ệ.
chardethoặc chardetectkhô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 chardettrên ubfox / debian, gói thường được gọi python-chardethoặc python3-chardet) hoặc qua pip với pip install chardet(hoặc pip install cchardetcho phiên bản tối ưu hóa c nhanh hơn).