【发布时间】:2010-09-10 14:08:02
【问题描述】:
在我们的应用程序中,我们接收来自不同来源的文本文件(.txt、.csv 等)。读取时,这些文件有时包含垃圾,因为这些文件是在不同/未知的代码页中创建的。
有没有办法(自动)检测文本文件的代码页?
StreamReader 构造函数上的detectEncodingFromByteOrderMarks 适用于UTF8 和其他带有unicode 标记的文件,但我正在寻找一种检测代码页的方法,例如ibm850、windows1252。
感谢您的回答,这就是我所做的。
我们收到的文件来自最终用户,他们对代码页一无所知。接收者也是最终用户,到目前为止,这就是他们对代码页的了解:代码页存在,而且很烦人。
解决方案:
- 在记事本中打开收到的文件,查看一段乱码。如果有人叫弗朗索瓦什么的,以你的人类智慧你可以猜到。
- 我创建了一个小应用程序,用户可以使用它打开文件,并输入用户知道在使用正确代码页时会出现在文件中的文本。
- 遍历所有代码页,并使用用户提供的文本显示提供解决方案的代码页。
- 如果弹出更多作为一个代码页,请让用户指定更多文本。
【问题讨论】:
标签: c# .net text encoding globalization