C# 判断txt文件编码格式
/// <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文件编码格式相关推荐
- 前端判断TXT文件是否为UTF-8编码
前端判断TXT文件是否为UTF-8编码 前端判断txt文件是否为utf-8编码
- TXT文件编码格式解析
TXT文件常用的编码格式有多种,ASCII码,Unicode码等多种,说明如下: 文件直接以数据开头,无头信息,为ANSI标准的ASCII编码: 文件头两个字节是FF FE,为Unicode编码: 文 ...
- java判断txt文件的编码格式
/*** txt转html* @param s* @return*/public static String txtToHtml(String s) {try {StringBuilder build ...
- python 判断txt文件的编码格式
import chardetf = open('/path/file.txt',r) data = f.read() print(chardet.detect(data)) 返回值会是类似这样的 一 ...
- c语言判断txt文件是否为空,如何判断文档或文件夹为空?
有用 实例: #include #include int main(void) { if ( !access("C://windows",0) ) puts("C://w ...
- 判断txt文件是否为空
File file = new File("D:/file.txt");if(file.exists() && file.length)() == 0) {Syst ...
- python判断txt文件是否为空_Python中的空值怎么判断
本文中所有代码均运行在Python 2.7上 在实际的工作当中,我们难免要与空值打交道,相信不少初学者都会写出下面的代码:if a is None: do something. else: do th ...
- php查找txt文件是否有,php怎么查询txt文件是否存在
php查询txt文件是否存在的方法:首先创建一个PHP示例文件:然后定义需要查询的TXT文件路径:最后通过"if(file_exists($filename)) {...}"方式判 ...
- txt文件-英汉字典
txt文件-英汉字典 内容要求 要求从一个txt文件读取,使用map制作英汉字典 #include <string> #include <iostream> #include ...
最新文章
- VTK:Shaders之ColorByNormal
- java snmp walk_snmpwalk用法
- java虚拟机之内存分配
- java 入参 是 枚举_java 枚举 参数传递
- Markdown简单上手
- http 断点续传,Windows下HTTP方式单线程下载
- 数据结构之线性结构之堆栈
- Java递归例子——求x的y幂次方
- 谷歌开源Allstar 项目,保护GitHub 仓库安全
- 《SharePoint Portal Server 2003 深入指南》即将完稿 大纲
- python竖着输出_Python中三种格式化输出的方式
- HTML5 之 FileReader(图片上传)
- 计算机房空调设计标准,《数据中心制冷与空调设计标准》的要点
- PPT是在投影仪或者计算机上进行演示,如何将幻灯片PPT转换成视频播放
- WebStorm之如何清除缓存
- 泰坦尼克号数据_数据分析实战3:泰坦尼克号生存分析
- matlab-线性代数 det 各阶主子式、余子式、代数余子式
- 关于把数据库放在阿里云上,实现共享
- 2012年1月51CTO壁纸点评活动获奖名单【已结束】
- QueryPerformanceCounter实现Windows微秒级延时
热门文章
- Django实战1-权限管理功能实现-01:搭建开发环境
- Spark1——介绍
- 20155330 2016-2017-2 《Java程序设计》第五周学习总结
- 使用ab对站点进行压力测试
- Sublime Text 3插件之Emmet:HTML/CSS代码快速编写神器
- [单选]物联网产业链的主要产品不包括下列哪一项 - 关于物联网(主讲:柳毅)笔记...
- CSS样式表的规划与组织
- 使用GDB命令行调试器调试C/C++程序
- 上海教师计算机等级要求,计算机考试阅卷教师谈等级考试
- tortoise清理本地分支_本地:延庆运污水环卫抽化粪池