实际需求:
有一批待处理的文件,这些文件格式为GBK或UTF-8,而我需要将这些文件全部转化成UTF-8的格式。
实现逻辑:
1:获取要处理的所有文件
2:得到要处理文件的编码格式
3:根据待处理文件的编码格式读取文件
4:将读取到的数据根据指定的格式进行编码后生成temp文件
5:将temp文件内容覆盖到源文件中,并删除temp文件。
难点:获取文件编码格式
解决方案:
1:通过解析文件的前几个字符,可以粗略的判断文件的编码格式(需要了解不同编码格式的编码规则,网上也有相关的简单Demo)
2:使用第三方的jar来解析文件的编码格式
我使用方案2:
使用 cpdetector 来解析文件的编码格式,官网地址
/**
* 得到指定文件的编码格式
* @param file
* @return
* @throws IOException
*/
public static Charset getFileCharset