C#根据字节数据byte[]前2位判断文本文件的Encoding编码格式

  C#根据字节数据byte[]前2位判断文本文件的Encoding编码格式



C# Code:

/// <summary>
/// C#根据字节数据byte[]前2位判断文本文件的Encoding编码格式
/// </summary>
/// <param name="bs"></param>
/// <returns></returns>
public static System.Text.Encoding GetType(byte[] bs)
{
  Encoding result
= System.Text.Encoding.Default;
  
  
using (System.IO.MemoryStream fs = new MemoryStream(bs))
  {
    
using (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)
        {
          result
= System.Text.Encoding.UTF8;
        }
        
else if (buffer[0] == 0xFE && buffer[1] == 0xFF)
        {
          result
= System.Text.Encoding.BigEndianUnicode;
        }
        
else if (buffer[0] == 0xFF && buffer[1] == 0xFE)
        {
          result
= System.Text.Encoding.Unicode;
        }
        
else
        {
          result
= System.Text.Encoding.Default;
        }
      }
      
else
      {
        result
= System.Text.Encoding.Default;
      }
      br.Close();
      br.Dispose();
      fs.Close();
      fs.Dispose();
    }
  }
  
  
return result;
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761





版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

C#根据字节数据byte[]2判断文本文件Encoding编码格式
C#获取文本文件编码格式Encoding,自动区分GB2312和UTF8
C#获取文件编码格式(UTF-8/UNICODE/ASCII)
C# 获取字符串实际长度(总字节数)中文2字节字母1字节
删除用户逻辑判断,检查当前用户是否关联业务数据或创建业务数据
SQL存储过程:删除基础资料逻辑判断,检查是否有关联业务数据
C#使用StreamWriter在大文本文件末尾添加一行内容
Dev XtraReport导出文件可以根据后缀名来导出不同格式
图片转为Base64编码文本
按指定字节长度截取字符串(每个汉字长度2字节)
C#根据第三方提供IP查询服务获取公网外网IP地址
C# GUID序列号转换生成唯一16短字符串或19长数字序号
C#编码直接调用WCF服务时协议参数设置
C#日期类型转换工具(时间戳,字符串,long,byte类型互转)
当前比较流行几种WebApi接口数据交换格式
C# 将GUID转换为最长16短字符串序号
C#.NET 身份证号码格式正则表达式验证
常见媒体格式类型HttpWebRequest.ContentType
C# 使用List泛型读取和保存文本文件
SQL判断两个带有分隔符字符串是否重叠