相关疑难解决方法(0)

如何检测文本文件的字符编码?

我尝试检测我的文件中使用了哪个字符编码.

我尝试使用此代码来获取标准编码

public static Encoding GetFileEncoding(string srcFile)
    {
      // *** Use Default of Encoding.Default (Ansi CodePage)
      Encoding enc = Encoding.Default;

      // *** Detect byte order mark if any - otherwise assume default
      byte[] buffer = new byte[5];
      FileStream file = new FileStream(srcFile, FileMode.Open);
      file.Read(buffer, 0, 5);
      file.Close();

      if (buffer[0] == 0xef && buffer[1] == 0xbb && buffer[2] == 0xbf)
        enc = Encoding.UTF8;
      else if (buffer[0] == 0xfe && buffer[1] == 0xff)
        enc = Encoding.Unicode;
      else if (buffer[0] == 0 && …
Run Code Online (Sandbox Code Playgroud)

c# encoding byte-order-mark character-encoding

73
推荐指数
4
解决办法
10万
查看次数

C#中的自动编码检测

可能重复:
在C#中确定字符串的编码

许多文本编辑器(如Notepad ++)可以检测任意文件的编码.我可以在C#中检测到文件的编码吗?

.net c# encoding

5
推荐指数
1
解决办法
2万
查看次数

使用C#检测文本文件的编码

我有一组markdown文件要传递给jekyll项目,需要找到它们的编码格式,即使用程序或API的带有BOM的UTF-8或没有BOM或ANSI的UTF-8。

如果我通过文件的位置,则必须列出文件,读取并作为结果产生编码。

是否有任何代码或API?

我已经尝试了有效方法中提到的用于流阅读器的sr.CurrentEncoding来找到任何文件的Encoding,但是结果随notepad ++结果的不同而不同。

还试图用https://github.com/errepi/ude(Mozilla的通用字符检测器),如建议https://social.msdn.microsoft.com/Forums/vstudio/en-US/862e3342-cc88-478f- bca2-e2de6f60d2fb / detect-encoding-of-file?forum = csharpgeneral,方法是在c#项目中实施ude.dll,但结果不如notepad ++那样有效,文件编码显示为utf-8,但从程序,结果是带有BOM的utf-8。

但是我应该从两种方法都得到相同的结果,那么问题出在哪里呢?

c# encoding utf-8

2
推荐指数
2
解决办法
3170
查看次数

标签 统计

c# ×3

encoding ×3

.net ×1

byte-order-mark ×1

character-encoding ×1

utf-8 ×1