C#获取文本文档Txt的编码格式,在读取txt文档的时候需要设定编码,一般我们手动新建的txt文档编码都可以用Encoding.Default来进行读取,但有些txt文档是通过别的工具或者软件导出来的,格式就有多种了。那么在经常需要读取txt文档的地方加上对文本文档的编码判断是有必要的。

/// <summary>

/// 获取文档编码

/// </summary>

/// <param name="filename">txt文档完整路径</param>

/// <returns></returns>

public static System.Text.Encoding GetFileEncodeType(string filename)

{

    using (FileStream fs = new FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read))

    {

        using (BinaryReader br = new BinaryReader(fs))

        {

            Byte[] buffer = br.ReadBytes(2);

            if (buffer[0] >= 0xEF)

            {

                if (buffer[0] == 0xEF && buffer[1] == 0xBB)

                {

                    return Encoding.UTF8;

                }

                else if (buffer[0] == 0xFE && buffer[1] == 0xFF)

                {

                    return Encoding.BigEndianUnicode;

                }

                else if (buffer[0] == 0xFF && buffer[1] == 0xFE)

                {

                    return Encoding.Unicode;

                }

                else

                {

                    return Encoding.Default;

                }

            }

            else

            {

                return Encoding.Default;

            }

        }

    }

}