Dalam aplikasi kami, kami menerima file teks ( .txt
, .csv
, dll) dari berbagai sumber. Saat membaca, file-file ini kadang-kadang mengandung sampah, karena file mana yang dibuat dalam codepage berbeda / tidak dikenal.
Apakah ada cara untuk (secara otomatis) mendeteksi codepage dari file teks?
The detectEncodingFromByteOrderMarks
, pada StreamReader
konstruktor, bekerja untuk UTF8
dan unicode ditandai file lainnya, tapi saya sedang mencari cara untuk mendeteksi halaman kode, seperti ibm850
, windows1252
.
Terima kasih atas jawaban Anda, inilah yang saya lakukan.
File yang kami terima adalah dari pengguna akhir, mereka tidak memiliki petunjuk tentang codepage. Penerima juga merupakan pengguna akhir, sekarang ini yang mereka ketahui tentang codepage: Codepage ada, dan menjengkelkan.
Larutan:
- Buka file yang diterima di Notepad, lihat sepotong teks yang kacau. Jika seseorang disebut François atau sesuatu, dengan kecerdasan manusia Anda, Anda dapat menebaknya.
- Saya telah membuat aplikasi kecil yang dapat digunakan pengguna untuk membuka file, dan memasukkan teks yang pengguna tahu akan muncul di file, ketika codepage yang benar digunakan.
- Ulangi semua kode halaman, dan tampilkan yang memberikan solusi dengan teks yang disediakan pengguna.
- Jika lebih dari satu codepage muncul, minta pengguna untuk menentukan lebih banyak teks.