java怎么获取txt文件编码格式

java怎么获取txt文件编码格式,第1张

文件头,有编码格式信息的,读出来,判断

一下

(fs[0]

==

0xEF

&&

fs[1]

==

0xBB

&&

fs[2]

==

0xBF)

是UTF-8的

文本文档,有的带有BOM(ByteOrderMark,字节序标志),即0xEF,0xBB,0xBF,有的没有。

Windows下的txt文本编辑器在保存UTF-8格式的文本文档时会自动添加BOM到文件头。

在判断这类文档时,可以根据文档的前3个字节来进行判断。然而BOM不是必需的,而且也不是推荐的。

对不希望UTF-8文档带有BOM的程序会带来兼容性问题,例如Java编译器在编译带有BOM的UTF-8源文件时就会出错。

而且BOM去掉了UTF-8一个期望的特性,即是在文本全部是ASCII字符时UTF-8是和ASCII一致的,即UTF-8向下兼容ASCII。

java课程设计例子

Java如何获取文件编码格式

1:简单判断是UTF-8或不是UTF-8,因为一般除了UTF-8之外就是GBK,所以就设置默认为GBK。

 按照给定的字符集存储文件时,在文件的最开头的三个字节中就有可能存储着编码信息,所以,基本的原理就是只要读出文件前三个字节,判定这些字节的值,就可以得知其编码的格式。其实,如果项目运行的平台就是中文 *** 作系统,如果这些文本文件在项目内产生,即开发人员可以控制文本的编码格式,只要判定两种常见的编码就可以了:GBK和UTF-8。由于中文Windows默认的编码是GBK,所以一般只要判定UTF-8编码格式。

   对于UTF-8编码格式的文本文件,其前3个字节的值就是-17、-69、-65,所以,判定是否是UTF-8编码格式的代码片段如下:

          File file = new File(path);

          InputStream in= new javaioFileInputStream(file);

          byte[] b = new byte[3];

          inread(b);

          inclose();

          if (b[0] == -17 && b[1] == -69 && b[2] == -65)

              Systemoutprintln(filegetName() + ":编码为UTF-8");

          else

              Systemoutprintln(filegetName() + ":可能是GBK,也可能是其他编码");

2:若想实现更复杂的文件编码检测,可以使用一个开源项目cpdetector,它所在的网址是:>

以上就是关于java怎么获取txt文件编码格式全部的内容,包括:java怎么获取txt文件编码格式、怎么辨别文本文档的编码、java 怎么获得文件编码格式等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10130753.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存