LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C# 判断一个文本文件的编码格式

freeflydom
2023年8月23日 11:4 本文热度 521

文件的字符集在Windows下有两种,一种是ANSI,一种Unicode

对于Unicode,Windows支持了它的三种编码方式,一种是小尾编码(Unicode),一种是大尾编码(BigEndianUnicode),一种是UTF-8编码。

我们可以从文件的头部来区分一个文件是属于哪种编码。当头部开始的两个字节为 FF FE时,是Unicode的小尾编码;当头部的两个字节为FE FF时,是Unicode的大尾编码;当头部两个字节为EF BB时,是Unicode的UTF-8编码;当它不为这些时,则是ANSI编码。

按照如上所说,我们可以通过读取文件头的两个字节来判断文件的编码格式,代码如下(C#代码):

private System.Text.Encoding GetFileEncodeType(string filename)

  {

    System.Text.Encoding dftype = System.Text.Encoding.Default;

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

    System.IO.BinaryReader br = new System.IO.BinaryReader(fs);

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

    if (buffer[0] >= 0xEF)

    {

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

      {

        return System.Text.Encoding.UTF8;

      }

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

      {

        return System.Text.Encoding.BigEndianUnicode;

      }

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

      {

        return System.Text.Encoding.Unicode;

      }

      else

      {

        return System.Text.Encoding.Default;

      }

    }

    else

    {

        //没有文件头应该进一步分析内容确定编码,这里使用default

      return System.Text.Encoding.Default;

      

    }

  }



该文章在 2023/8/23 11:04:15 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved