问题场景描述:
1、对接人行二代征信系统,需要在移动端(pad)上展示客户的征信报告
2、征信报告内容是一个base64文件,成功解码后,生成一个html文件
3、该html文件在pc端打开正常,但是在安卓设备上显示的是像藏文一样奇怪的字符
注:请确保已用 utf-8解码,排除编码问题!
解决方案及原因:
由 JAVA 生成的文件要被安卓设备解析,其格式必须为:UTF-8 BOM
物理解决方案:
使用文本编辑器手动修改文件编码格式,增加BOM头部
代码解决方案(片段):
FileOutputStream fos =new FileOutputStream( fileName + ".html");
//先写入bom头,然后再写入内容
fos.write(new byte[]{(byte)0xEF, (byte)0xBB, (byte)0xBF});
bw = new BufferedWriter(new OutputStreamWriter(fos, "UTF-8"));
//str为文件内容
bw.write(str);