zoukankan      html  css  js  c++  java
  • C#读取文件时自动判断编码函数

             /// <summary>
           
    /// C#读取文件时自动判断编码函数
           
    /// </summary>
           
    /// <param name="FILE_NAME">需要判断编码方式文件的物理路径

    "C:\file\file.txt"</param>
           
    /// <returns></returns>
            public static System.Text.Encoding GetType(string FILE_NAME)
            {
                FileStream fs
    = new FileStream(FILE_NAME, FileMode.Open,

    FileAccess.Read);
                System.Text.Encoding r
    = GetType(fs);
                fs.Close();
               
    return r;
            }

           
    public static System.Text.Encoding GetType(FileStream fs)
            {
               
    /*byte[] Unicode=new byte[]{0xFF,0xFE}; 
                byte[] UnicodeBIG=new byte[]{0xFE,0xFF}; 
                byte[] UTF8=new byte[]{0xEF,0xBB,0xBF};
    */

                BinaryReader r
    = new BinaryReader(fs,

    System.Text.Encoding.Default);
               
    byte[] ss = r.ReadBytes(4);
                r.Close();
               
    //编码类型 Coding=编码类型.ASCII;  
                if (ss[0] <= 0xEF)
                {
                   
    if (ss[0] == 0xEF && ss[1] == 0xBB && ss[2] == 0xBF)
                    {
                       
    return System.Text.Encoding.UTF8;
                    }
                   
    else if (ss[0] == 0xFE && ss[1] == 0xFF)
                    {
                       
    return System.Text.Encoding.BigEndianUnicode;
                    }
                   
    else if (ss[0] == 0xFF && ss[1] == 0xFE)
                    {
                       
    return System.Text.Encoding.Unicode;
                    }
                   
    else
                    {
                       
    return System.Text.Encoding.Default;
                    }
                }
               
    else
                {
                   
    return System.Text.Encoding.Default;
                }
            }

  • 相关阅读:
    Dialog中添加多选按钮CheckBox
    把格式日期转换成毫秒
    监听EditText输入事件
    浅析LocationManager的位置定位
    Android 字体设置
    Android开发之InstanceState详解
    Bash中自动补全时忽略大小写
    51与PC通信协议设计及实现(九):更深入的扩展
    推到重做
    51与PC通信协议设计及实现(五):问题收集解决随笔
  • 原文地址:https://www.cnblogs.com/jhabb/p/1925499.html
Copyright © 2011-2022 走看看