现象:线上sftp下载文件解析入库,平时都可以正常解析入库,突然出现文件解析异常,手工下载打开文件格式是符合要求的。
原因:约定文件使用的是utf-8编码,一般文件都是正常的utf-8的文件,
但UTF-8的文件有BOM和无BOM之区别,在有BOM的UTF-8的文件中需要注意文件开头会多出字符,造成程序解析失败,在处理文件时规避掉这个BOM。
//如果是utf-8 bom 格式
if (sqlFileContent.startsWith("\uFEFF")) {
logger.info(">>>>>>>>>>>>>>>>接收的字符串是utf-8 bom" +"编码格式的>>>>>>>>>>>>>>>>>>");
sqlFileContent = sqlFileContent.substring(sqlFileContent.indexOf("\uFEFF") + 1);
}