首先,不同编码的文本,是根据文本的前两个字节来定义其编码格式的。定义如下:
ANSI: 无格式定义;
Unicode: 前两个字节为FFFE;
Unicode big endian: 前两字节为FEFF;
UTF-8: 前两字节为EFBB;
知道了各种编码格式的区别,写代码就容易了.
-
publicstaticStringget_charset(Filefile){
-
Stringcharset="GBK";
-
byte[]first3Bytes=newbyte[3];
-
try{
-
boolean;
-
BufferedInputStreambis=newBufferedInputStream(newFileInputStream(file));
-
bis.mark(0);
-
intread=bis.read(first3Bytes,0,3);
-
if(read==-1)returncharset;
-
if(first3Bytes[0]==(byte)0xFF&&first3Bytes[1]==(byte)0xFE){
-
charset="UTF-16LE";
-
checked=true;
-
}
-
elseif(first3Bytes[0]==(byte)0xFE&&first3Bytes[1]==(byte)0xFF){
-
charset="UTF-16BE";
-
checked=true;
-
}
-
elseif(first3Bytes[0]==(byte)0xEF&&first3Bytes[1]==(byte)0xBB&&first3Bytes[2]==(byte)0xBF){
-
charset="UTF-8";
-
checked=true;
-
}
-
bis.reset();
-
if(!checked){
-
-
intloc=0;
-
-
while((read=bis.read())!=-1){
-
loc++;
-
if(read>=0xF0)break;
-
if(0x80<=read&&read<=0xBF)
-
break;
-
if(0xC0<=read&&read<=0xDF){
-
read=bis.read();
-
if(0x80<=read&&read<=0xBF)
-
-
continue;
-
elsebreak;
-
}
-
elseif(0xE0<=read&&read<=0xEF){
-
read=bis.read();
-
if(0x80<=read&&read<=0xBF){
-
read=bis.read();
-
if(0x80<=read&&read<=0xBF){
-
charset="UTF-8";
-
break;
-
}
-
elsebreak;
-
}
-
elsebreak;
-
}
-
}
-
-
}
-
-
bis.close();
-
}catch(Exceptione){
-
e.printStackTrace();
-
}
-
-
returncharset;
- }
From:http://ajava.org/code/I18N/14816.html
分享到:
相关推荐
java判断文件编码格式 三方工具包 cpdetector_1.0.10.jar
它的类库很小,只有500K左右,利用该类库判定文本文件的代码如下(由于cpdetector的算法使用概率统计,所以结果并不是100%准确的,但是是迄今为止我见过
文件上传时,可以用java判断文件编码,jar包和java代码。有问题加Q280764207
文件操作工具类,包含判断文件编码适合windows和linux,文件压缩打包,判断文件格式,拷贝文件等内容
java判断文件编码或文本流编码的方法宣贯.pdf
Java判断文件的编码, 适用于utf-8和gbk码的判断。
这个文档教你如何,判读不同的文件编码类型,gbk,utf-8等等
判断文件编码格式和批量将gbk转为utf-8,感觉还是判断的准确,不知道大家用的准确么?
判断字符编码格式代码,用C++编写的如何判断字符编码格式,UTF-8,ASCII等
一个判断文件为utf-8的java类,自己用有限状态机实现的,很好用的。
以下是获取文件编码的一个类: using System; using System.IO; using System.Text; /// /// FileEncoding 的摘要说明 /// namespace FileEncoding { /// /// 获取文件的编码格式 /// public class Encoding...
下面小编就为大家分享一篇python中判断文件编码的chardet(实例讲解),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
在实现TextStraem的时候,找到判断文件编码的代码是VBS的,但是在JScript中是没有ASC等函数的,也不能对二进制数据进行处理,因此需要通过一个特别的方法来获取文件开关的编码标识。
正则检查当前字符串中的字是否包含在GBK字库中,可获取非GBK字符。
支持处理编码格式"GB2312", "GBK", "HZ"等
获取文件编码格式与文件转码,提供几个工具方法
通用的文件字符编码集判断需要借助第三方包...使用Cpdetector jar包检测文件编码需要依赖antlr-2.7.7.jar、chardet-1.0.jar、jargs-1.0.jar三个jar包 本下载资源一站式全包含,并附带亲测有效的片段代码供测试~~
判断文件编码格式(支持zip),所需jar包 antlr-1.0.jar,cpdetector-1.08.jar,jchadet-1.0.jar
读取与创建CSV文件,根据第三方jar包自动解析文件编码方式,相关jar包与使用说明
利用chardet,cpdetector包获取文件格式,并判断文件类型是否带BOM