在我们的应用程序中,我们接收来自不同来源的文本文件(.txt
、.csv
等).在读取时,这些文件有时包含垃圾,因为这些文件是在不同/未知的代码页中创建的.
有没有办法(自动)检测文本文件的代码页?
StreamReader
构造函数上的detectEncodingFromByteOrderMarks
适用于UTF8
和其他unicode标记的文件,但我正在寻找一种检测代码页的方法,比如ibm850
windows1252
.
谢谢你的回答,这就是我所做的.
我们收到的文件来自最终用户,他们没有关于代码页的线索.接收者也是最终用户,到目前为止,他们对代码页的了解是这样的:代码页是存在的,而且很烦人.
Solution:
- 在记事本中打开收到的文件,看一段乱码.如果有人叫弗朗索瓦什么的,用你的人类智慧你可以猜到.
- 我已经创建了一个小应用程序,用户可以使用它打开文件,并输入一个用户知道的文本,当使用正确的代码页时,它将出现在文件中.
- 循环浏览所有代码页,并用用户提供的文本显示给出解决方案的代码页.
- 如果一个代码页弹出多个,请用户指定更多文本.