我写的应用程序必须从TXT文件中读取行(文件存储在ZIP存档中,因此我使用c#流来解压缩它们并在内存中运行)并继续它们。
输入文件的编码类似于ASCII或UTF8(我不知道哪个是哪个)。数据包含包含波兰语或捷克语字符的字符串。文件很小(1-5kB)
第一个问题当我强制读取像UTF8这样的文件时,从ASCII文件显示抛光字母不正确,反之亦然。任何的想法?我怎样才能以简单的方式检测文件编码?此信息是否保留在TXT文件元数据中?
第二个问题:当我在NotePad ++中显示TXT文件时,我可以看到文件是如何编码的。 NotePad ++如何知道这一点?
答案 0 :(得分:1)
您可能不应强制任何编码:
String text = File.ReadAllText(@"C:\MyFile.txt");
系统(以及NotePad +)将尝试使用所谓的 BOM (字节顺序标记)来检测实际编码