Trong ứng dụng của chúng tôi, chúng tôi nhận được tập tin văn bản ( .txt
, .csv
, vv) từ các nguồn khác nhau. Khi đọc, các tệp này đôi khi chứa rác, vì các tệp được tạo trong một bảng mã khác / không xác định.
Có cách nào để (tự động) phát hiện bảng mã của tệp văn bản không?
Các detectEncodingFromByteOrderMarks
, trên StreamReader
constructor, làm việc cho UTF8
và các file unicode đánh dấu khác, nhưng tôi đang tìm kiếm một cách để phát hiện các trang mã, như ibm850
, windows1252
.
Cảm ơn câu trả lời của bạn, đây là những gì tôi đã làm.
Các tệp chúng tôi nhận được là từ người dùng cuối, họ không có manh mối về tiền mã hóa. Người nhận cũng là người dùng cuối, đến bây giờ đây là những gì họ biết về tiền mã hóa: Tiền mã hóa tồn tại và gây phiền nhiễu.
Giải pháp:
- Mở tệp đã nhận trong Notepad, nhìn vào một đoạn văn bản bị cắt xén. Nếu ai đó được gọi là François hoặc một cái gì đó, với trí thông minh con người của bạn, bạn có thể đoán điều này.
- Tôi đã tạo một ứng dụng nhỏ mà người dùng có thể sử dụng để mở tệp và nhập văn bản mà người dùng biết nó sẽ xuất hiện trong tệp khi sử dụng mã chính xác.
- Lặp lại tất cả các bảng mã và hiển thị những giải pháp đưa ra giải pháp với văn bản do người dùng cung cấp.
- Nếu có nhiều hơn một bảng mã bật lên, hãy yêu cầu người dùng chỉ định thêm văn bản.