C#:如何 - 找出我是否有正确的编码

Phe*_*nix 5 c# encoding byte filestream

我对文件,流和不同的代码页都很陌生.看到这是我的问题:

我得到了文本文件,其中一些是使用代码页Windows-1252创建的,有些仍然是IBM850,有时它们是UTF8.当我导入它们时,我的数据库会显示ä,ö,ü,ß的各种符号,因为我用错误的代码页读取它们.只有当我使用正确的代码页导入它们时,一切正常.

这是我认为可能是一个好方法:

使用代码页X将ä,ö,ü,ß转换为字节数组

例如:

byte[] myAeKl = Encoding.GetEncoding("IBM850").GetBytes("ä");

byte[] myAeGr = Encoding.GetEncoding("IBM850").GetBytes("Ä");
Run Code Online (Sandbox Code Playgroud)

浏览文本文件并将每个字母字节数组与上面的字节数组进行比较.如果发现使用该代码页,否则尝试另一个代码页.

这是我不明白的:我如何比较文本文件中字母的字节与我要查找的字母的字节数组.例如:

if (Textfile.Letter == myAeKl || Textfile.Letter == myAeGr)
...
Run Code Online (Sandbox Code Playgroud)

有没有其他方法来获得正确的代码页?我是否对解决方案有正确的帮助?

cof*_*ine 0

我会尝试使用一种编码加载文件,如果遇到意外的字符,则使用另一种编码加载它。