在处理支付宝、微信支付等对账文件时可能会碰到因为\ufeff字符导致字段解析错误。\ufeff这是哪来的呢?网上搜索后发现原来是文本保存时包含了BOM(Byte Order Mark,字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码)导致的,解决方法是使用utf-8-sig编码(无BOM格式):
如果文件编码格式不可变更,则删除\ufeff即可
@Override
protected List<String> parseColumnNames(List<String> lines) {
return convertToList(lines.get(0).replace("\ufeff", ""), split);
}