最近有个要和第三方系统进行文件对接的需求,按照对方要求完成对接需求吗,在联调过程中发现第三方系统无法解析我上传的txt文件,且文件编码格式是第三方系统要求的UTF-8格式,自我检查一整天时间才发现了这个生成文件的坑,也怪自己对Linux文件了解不深导致的,特记录如下:
背景
需要和第三方系统进行上报txt文件对接
问题
按照要求生成的UTF-8格式的文件始终解析失败
定位原因
是因为生成的文件,编码格式符合要求,但是文件格式是dos格式,导致第三方系统解析失败。
项目中是使用FileOutputStream生成的文件,但是在数据换行时,我使用的 \n\r 进行换行,但是在Linux环境中只需要使用 \n 即是换行,多余的 \r 符号导致文件格式变成dos格式
附Linux环境下查看文件格式的方法
1、用vim打开文件
2、:set ff
解决办法
在生成文件时,将数据换行符从 \n\r 替换为 \n 即可