当前位置:首 页 > 攻城湿 >.Net & C# > 查看文章

C#判断文件编码格式

.Net & C# 你是第2717个围观者 0条评论 供稿者: 标签:,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace EncodingIdentifier
{
    public class Text
    {
        public static Encoding GetEncodingType(string fileName)
        {
            FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
            BinaryReader binary = new BinaryReader(fileStream, Encoding.Default);
            byte[] bytes = binary.ReadBytes(3);
            fileStream.Close();
            if (bytes[0] >= 0xEF)
            {
                if (GetResult(bytes, 0, 0xEF) && GetResult(bytes, 1, 0xBB) && GetResult(bytes, 2, 0xBF))
                {
                    return Encoding.UTF8;
                }
                else if (GetResult(bytes, 0, 0xFE) && GetResult(bytes, 1, 0xFF))
                {
                    return Encoding.BigEndianUnicode;
                }
                else if (GetResult(bytes, 0, 0xFF) && GetResult(bytes, 1, 0xFE))
                {
                    return Encoding.Unicode;
                }
                else
                {
                    return Encoding.Default;
                }
            }
            else
            {
                return Encoding.Default;
            }
        }

        public static Encoding GetEncodingType(FileStream fileStream)
        {
            BinaryReader binary = new BinaryReader(fileStream, Encoding.Default);
            byte[] bytes = binary.ReadBytes(3);
            if (bytes[0] >= 0xEF)
            {
                if (GetResult(bytes, 0, 0xEF) && GetResult(bytes, 1, 0xBB) && GetResult(bytes, 2, 0xBF))
                {
                    return Encoding.UTF8;
                }
                else if (GetResult(bytes, 0, 0xFE) && GetResult(bytes, 1, 0xFF))
                {
                    return Encoding.BigEndianUnicode;
                }
                else if (GetResult(bytes, 0, 0xFF) && GetResult(bytes, 1, 0xFE))
                {
                    return Encoding.Unicode;
                }
                else
                {
                    return Encoding.Default;
                }
            }
            else
            {
                return Encoding.Default;
            }
        }

        public static bool GetResult(byte[] Value, int index, int judge)
        {
            return Value.Length > index ? Value[index] == judge : false;
        }
    }
}

这家伙很懒,什么都没写!

—— zhaorong

zhaorong
你可能也喜欢Related Posts
众说纷纭Comments
大眼 可爱 大笑 坏笑 害羞 发怒 折磨 快哭了 大哭 白眼 晕 流汗 困 腼腆 惊讶 憨笑 色 得意 骷髅 囧 睡觉 眨眼 亲亲 疑问 闭嘴 难过 淡定 抗议 鄙视 猪头
小提示:直接粘贴图片到输入框试试
努力发送中...
  • 评论最多
  • 最新评论
  • 随机文章
footer logo
未经许可请勿自行使用、转载、修改、复制、发行、出售、发表或以其它方式利用本网站之内容
Copyright © zhaorong All Rights Reserved. 滇ICP备15006105号-1