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