/// <summary> /// 获取文件的编码格式 /// </summary> public class EncodingType{/// <summary> /// 给定文件的路径,读取文件的二进制数据,判断文件的编码类型 /// </summary> /// <param name=“FILE_NAME“>文件路径</param> /// <returns>文件的编码类型</returns> public static System.Text.Encoding GetType(string FILE_NAME){FileStream fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read);Encoding r = GetType(fs);fs.Close();return r;}/// <summary> /// 通过给定的文件流,判断文件的编码类型 /// </summary> /// <param name=“fs“>文件流</param> /// <returns>文件的编码类型</returns> public static System.Text.Encoding GetType(FileStream fs){byte[] Unicode = new byte[] { 0xFF, 0xFE, 0x41 };byte[] UnicodeBIG = new byte[] { 0xFE, 0xFF, 0x00 };byte[] UTF8 = new byte[] { 0xEF, 0xBB, 0xBF }; //带BOM Encoding reVal = Encoding.Default;BinaryReader r = new BinaryReader(fs, System.Text.Encoding.Default);int i;int.TryParse(fs.Length.ToString(), out i);byte[] ss = r.ReadBytes(i);if (IsUTF8Bytes(ss) || (ss[0] == 0xEF && ss[1] == 0xBB && ss[2] == 0xBF)){reVal = Encoding.UTF8;}else if (ss[0] == 0xFE && ss[1] == 0xFF && ss[2] == 0x00){reVal = Encoding.BigEndianUnicode;}else if (ss[0] == 0xFF && ss[1] == 0xFE && ss[2] == 0x41){reVal = Encoding.Unicode;}r.Close();return reVal;}/// <summary> /// 判断是否是不带 BOM 的 UTF8 格式 /// </summary> /// <param name=“data“></param> /// <returns></returns> private static bool IsUTF8Bytes(byte[] data){int charByteCounter = 1; //计算当前正分析的字符应还有的字节数 byte curByte; //当前分析的字节. for (int i = 0; i < data.Length; i++){curByte = data[i];if (charByteCounter == 1){if (curByte >= 0x80){//判断当前 while (((curByte <<= 1) & 0x80) != 0){charByteCounter++;}//标记位首位若为非0 则至少以2个1开始 如:110XXXXX...........1111110X if (charByteCounter == 1 || charByteCounter > 6){return false;}}}else{//若是UTF-8 此时第一位必须为1 if ((curByte & 0xC0) != 0x80){return false;}charByteCounter--;}}if (charByteCounter > 1){throw new Exception("非预期的byte格式");}return true;}}

  

转载于:https://www.cnblogs.com/cyberarmy/p/5652835.html

C# 判断txt文件编码格式相关推荐

  1. 前端判断TXT文件是否为UTF-8编码

    前端判断TXT文件是否为UTF-8编码 前端判断txt文件是否为utf-8编码

  2. TXT文件编码格式解析

    TXT文件常用的编码格式有多种,ASCII码,Unicode码等多种,说明如下: 文件直接以数据开头,无头信息,为ANSI标准的ASCII编码: 文件头两个字节是FF FE,为Unicode编码: 文 ...

  3. java判断txt文件的编码格式

    /*** txt转html* @param s* @return*/public static String txtToHtml(String s) {try {StringBuilder build ...

  4. python 判断txt文件的编码格式

    import chardetf = open('/path/file.txt',r) data = f.read() print(chardet.detect(data)) 返回值会是类似这样的  一 ...

  5. c语言判断txt文件是否为空,如何判断文档或文件夹为空?

    有用 实例: #include #include int main(void) { if ( !access("C://windows",0) ) puts("C://w ...

  6. 判断txt文件是否为空

    File file = new File("D:/file.txt");if(file.exists() && file.length)() == 0) {Syst ...

  7. python判断txt文件是否为空_Python中的空值怎么判断

    本文中所有代码均运行在Python 2.7上 在实际的工作当中,我们难免要与空值打交道,相信不少初学者都会写出下面的代码:if a is None: do something. else: do th ...

  8. php查找txt文件是否有,php怎么查询txt文件是否存在

    php查询txt文件是否存在的方法:首先创建一个PHP示例文件:然后定义需要查询的TXT文件路径:最后通过"if(file_exists($filename)) {...}"方式判 ...

  9. txt文件-英汉字典

    txt文件-英汉字典 内容要求 要求从一个txt文件读取,使用map制作英汉字典 #include <string> #include <iostream> #include ...

最新文章

  1. VTK:Shaders之ColorByNormal
  2. java snmp walk_snmpwalk用法
  3. java虚拟机之内存分配
  4. java 入参 是 枚举_java 枚举 参数传递
  5. Markdown简单上手
  6. http 断点续传,Windows下HTTP方式单线程下载
  7. 数据结构之线性结构之堆栈
  8. Java递归例子——求x的y幂次方
  9. 谷歌开源Allstar 项目,保护GitHub 仓库安全
  10. 《SharePoint Portal Server 2003 深入指南》即将完稿 大纲
  11. python竖着输出_Python中三种格式化输出的方式
  12. HTML5 之 FileReader(图片上传)
  13. 计算机房空调设计标准,《数据中心制冷与空调设计标准》的要点
  14. PPT是在投影仪或者计算机上进行演示,如何将幻灯片PPT转换成视频播放
  15. WebStorm之如何清除缓存
  16. 泰坦尼克号数据_数据分析实战3:泰坦尼克号生存分析
  17. matlab-线性代数 det 各阶主子式、余子式、代数余子式
  18. 关于把数据库放在阿里云上,实现共享
  19. 2012年1月51CTO壁纸点评活动获奖名单【已结束】
  20. QueryPerformanceCounter实现Windows微秒级延时

热门文章

  1. Django实战1-权限管理功能实现-01:搭建开发环境
  2. Spark1——介绍
  3. 20155330 2016-2017-2 《Java程序设计》第五周学习总结
  4. 使用ab对站点进行压力测试
  5. Sublime Text 3插件之Emmet:HTML/CSS代码快速编写神器
  6. [单选]物联网产业链的主要产品不包括下列哪一项 - 关于物联网(主讲:柳毅)笔记...
  7. CSS样式表的规划与组织
  8. 使用GDB命令行调试器调试C/C++程序
  9. 上海教师计算机等级要求,计算机考试阅卷教师谈等级考试
  10. tortoise清理本地分支_本地:延庆运污水环卫抽化粪池