Tôi đang đọc các tệp ở nhiều định dạng và ngôn ngữ khác nhau và hiện tôi đang sử dụng thư viện mã hóa nhỏ để tìm cách phát hiện mã hóa thích hợp (http://www.codeproject.com/KB/recipes/DetectEncoding.aspx).C#: Chu kỳ thông qua mã hóa
Nó khá tốt, nhưng thỉnh thoảng nó vẫn bị lỡ. (Các tệp đa ngôn ngữ)
Hầu hết người dùng tiềm năng của tôi có rất ít hiểu biết về mã hóa (tốt nhất tôi có thể hy vọng là "nó có liên quan đến ký tự") và rất khó có thể chọn mã hóa phù hợp một danh sách, vì vậy tôi muốn để cho họ chu kỳ thông qua các mã hóa khác nhau cho đến khi một trong những quyền được tìm thấy chỉ bằng cách nhấp vào một nút.
Hiển thị sự cố? Nhấp vào đây để thử mã hóa khác! (Dù sao thì đó cũng là khái niệm)
Cách tốt nhất để thực hiện điều gì đó như thế?
Chỉnh sửa: Có vẻ như tôi không thể hiện bản thân mình đủ rõ ràng. Bằng cách "đi qua mã hóa", tôi không có nghĩa là "cách lặp qua mã hóa?"
Ý của tôi là "cách để người dùng thử mã hóa khác nhau theo thứ tự mà không cần tải lại tệp?"
Ý tưởng giống như sau: Giả sử tệp được tải bằng mã hóa sai. Một số ký tự lạ được hiển thị. Người dùng sẽ nhấp vào nút "Mã hóa tiếp theo" hoặc "mã hóa trước" và chuỗi sẽ được chuyển đổi bằng mã hóa khác. Người dùng chỉ cần tiếp tục nhấp cho đến khi mã hóa đúng được tìm thấy. (bất kỳ mã hóa nào tốt cho người dùng sẽ làm tốt). Miễn là người dùng có thể nhấp vào "tiếp theo", anh ấy có cơ hội hợp lý để giải quyết vấn đề của mình.
Những gì tôi đã tìm thấy liên quan đến việc chuyển đổi chuỗi thành byte bằng cách sử dụng mã hóa hiện tại, sau đó chuyển đổi byte sang mã hóa tiếp theo, chuyển đổi các byte thành ký tự, sau đó chuyển đổi char thành chuỗi ... Doable, nhưng tôi tự hỏi nếu không có cách nào dễ dàng hơn để làm điều đó.
Ví dụ: nếu có phương thức đọc chuỗi và trả về bằng cách sử dụng mã hóa khác, chẳng hạn như "hiển thị (chuỗi, mã hóa)".
Cảm ơn rất nhiều câu trả lời!
Về mặt kỹ thuật, tệp được mã hóa UTF-8 không cần BOM. Nó thậm chí còn nản chí, vì nó sẽ can thiệp vào các ứng dụng mong đợi dữ liệu ASCII bắt đầu với các ký tự nhất định, như "#!" ở đầu tập lệnh hệ vỏ Unix. –