首页 > 数码专栏 > 正文

java自动识别文件编码

数码专栏 时间:2024-09-16 12:02:05

java自动识别文本文件字符编码

这是我目前写的小工具,目前测试能够很好的识别读取的文本文件是“utf-8”还是“gbk”,原理是这2种字符编码的英文字母及标点字符都是ASCII码,“utf-8”分有bom头与无bom头的情况,“utf-8”的中文字符的16进制编码基本是以“E”开头,那么,就根据这些特征进行猜测,代码如下:package top.hmtools.base; import java.math.BigInteger; import top.hmtools.system.SystemInfoTools; /** * 猜测字符编码工具 * @author HyboJ * */ public class CharsetGuessTools { /** * 根据字节码数组,猜测编码类型 * <br>依据:如果文本头有bom信息则可知其对应的字符编码。 * <br>此外,GBK与UTF-8都有可能,二者都可以没有bom信息。经观察发现,ASCII对应的字符是二者一致的部分, * <br>经尝试多个中文字符,发现在UTF-8中的编码在以16进制字符串表示时,基本上是以“E”开头,而GBK则不是。

郑重声明:图文由自媒体作者发布,我们尊重原作版权,但因数量庞大无法逐一核实,图片与文字所有方如有疑问可与我们联系,核实后我们将予以删除。