在我们的应用程序中,我们从各种来源接收文本文件(.txt
,.csv
等)。读取时,这些文件有时包含垃圾,因为这些文件是在其他/未知代码页中创建的。
有没有办法(自动)检测文本文件的代码页?detectEncodingFromByteOrderMarks
构造函数上的StreamReader
适用于UTF8
和其他带有unicode标记的文件,但是我正在寻找一种方法来检测代码页,例如ibm850
,windows1252
。
感谢您的回答,这就是我所做的。
我们收到的文件来自最终用户,他们不了解代码页。接收者也是最终用户,到目前为止,这是他们对代码页的了解:代码页存在并且令人讨厌。
解决方案:
最佳答案
您无法检测到代码页,需要告知它。您可以分析字节并进行猜测,但这会带来一些奇怪(有时很有趣)的结果。我现在找不到它,但是我敢肯定,记事本可以欺骗显示中文的英文文本。
无论如何,这是您需要阅读的内容:
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)。
特别是乔尔说: