判断一个文本文件的编码格式
判断一个文本文件的编码格式
不同编码的文本,是根据文本的前两个字节来定义其编码格式的。定义如下:
ANSI: 无格式定义;
Unicode: 前两个字节为FFFE;
Unicode big endian: 前两字节为FEFF;
UTF-8: 前两字节为EFBB;
文件的字符集在Windows下有两种,一种是ANSI,一种Unicode。
对于Unicode,Windows支持了它的三种编码方式,一种是小尾编码(Unicode),一种是大尾编码(BigEndianUnicode),一种是UTF-8编码。
我们可以从文件的头部来区分一个文件是属于哪种编码。当头部开始的两个字节为 FF FE时,是Unicode的小尾编码;当头部的两个字节为FE FF时,是Unicode的大尾编码;当头部两个字节为EF BB时,是Unicode的UTF-8编码;当它不为这些时,则是ANSI编码。
按照如上所说,我们可以通过读取文件头的两个字节来判断文件的编码格式,代码如下(C#代码):
程序中System.Text.Encoding.Default是指操作系统的当前 ANSI 代码页的编码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
public System.Text.Encoding GetFileEncodeType( string filename)
{
System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read);
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)
{
return System.Text.Encoding.UTF8;
}
else if (buffer[0]==0xFE && buffer[1]==0xFF)
{
return System.Text.Encoding.BigEndianUnicode;
}
else if (buffer[0]==0xFF && buffer[1]==0xFE)
{
return System.Text.Encoding.Unicode;
}
else
{
return System.Text.Encoding.Default;
}
}
else
{
return System.Text.Encoding.Default;
}
}
|
判断一个文本文件的编码格式相关推荐
- 【转】如何判断一个文本文件内容的编码格式 UTF-8 ? ANSI(GBK)
转自:http://blog.csdn.net/jiangqin115/article/details/42684017 UTF-8编码的文本文档,有的带有BOM (Byte Order Mark, ...
- 如何判断一个文件的编码格式是gb2312还是gbk等
GB2312-80编码的编码范围是高位0xa1-0xfe,低位是 0xa1-0xfe ,其中汉字范围为 0xb0a1 和 0xf7fe,如果只是简单地判断汉字,则只要查看高字节是否大于等于0xa1就可 ...
- 用windows“记事本”创建一个文本文件(hamlet.txt),其中每行包含一段英文。试读出文件的全部内容,并判断:(1)该文本文件有多少行?(2)文件中以大写字母开头的有多少行?
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 题目: 代码: 效果截图: 总结 题目: 用windows"记事本"创建一个文本文件(hamlet.txt) ...
- 判断包含字符当中包含小数点_Python|提取包含指定文本的行到一个文本文件(字符串或正则)...
Python对于文本处理简单.直观. 任务:想返回一个网页的全部标题的文本行到一个文本文件. 在网页文件的源代码中,页面的标题都是用诸如 -- (后面的数字可以是1-6中任意数字)来标识的,要把这样的 ...
- 文件------概念、基本操作、打开文件的方式、按行读取文件内容、复制文件、文件/目录的常用管理操作、文本文件的编码格式、练习1-4
文件的概念 文件的概念 计算机的文件,就是存储在某种长期储存设备上的一段数据 长期存储设备包括:硬盘.U盘.移动硬盘.光盘... 文件的作用 将数据长期保存下来,在需要的时候使用 文件的存储方式 在计 ...
- lua 读取服务器文件是否存在,Lua判断一个目录或文件是否存在的方法
Lua判断一个目录或文件是否存在的方法 一.使用io.open Open 一下就可以了. 复制代码 代码如下: file,err=io.open("XXXX") 如果文件正常打开 ...
- python高效处理文件_使用Python语言高效地处理一个文本文件
使用Python语言高效地处理一个文本文件: # -- encoding: utf-8 -- # 脚本功能:在指定的文件中查找指定的字符串 # 此脚本接受两个参数 # 参数1:指定一个文件名,在这个文 ...
- 分析一个文本文件(英文文章)中各个词出现的频率,并且把频率最高的十个词打印出来...
老师布置了这个大作业后,就一直感觉很头疼,因为我编程很不好,而且很长时间没有好好编程了,但是看到这个题目有似曾相识的感觉,同学提醒上个学期的编译有词法识别的程序,重新找出来看了看,有了一点识别单词的思 ...
- VB 判断是否文本文件
代码如下: Option Explicit Public Function IsTextFile(Bytes() As Byte) As Boolean Dim i As Long, AscN As ...
最新文章
- php fpm xcache,php扩展xcache
- stm32mp1安装linux系统,stm32mp1linux开发环境搭建(cortex a7)
- 范灵俊(1983-),男,博士,中国科学院计算技术研究所工程师,信息技术战略研究中心战略研究主管,美国韦恩州立大学访问学者。...
- 第一阶段冲刺 第三天
- Docker 学习总结(71)—— Docker、Docker Compose、Docker Swarm 之间的区别
- SpringBoot整合quartz的一个例子
- 硬件检测相关工具大全
- case when then else end 及cheak约束
- java 大小写_java中如何进行大小写字母转换?
- 网易被裁后,68天吃透这份阿里学长甩我的Android面试笔记,竟让我收到字节跳动和小米offer
- 07_Python3.6+selenium2.53.6自动化测试_通过id定位百度输入框
- mysql 分离 实时读_MySQL深入利用Ameoba实现读写分离
- IOS课程期末项目报告
- 康有为《公车上书》纯属虚构? - 转自《爱野史网》
- SketchUp 2021(草图大师)新增功能
- Spring Cloud 统一配置
- 【2022前端面试】CSS手写面试题汇总(加紧收藏)
- NSX-T 系列:第 6 部分 - 准备配置文件
- cortex a53 微型计算机,2019年值得期待的5个树莓派替代品
- 安卓APP源码和设计报告——运动健身教学