level 4
想要复活的死鱼
楼主
求问大神,我用BufferedInputStream读取xlsx后base64加密传输,后来解密(均使用utf8)以mime传到前台下载,mime类型用的网上找的response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8");发现下载的文件不对,文件出错打不开,且长度是原文件的1.5倍,其他类型的文件暂时均未发现问题。后来自己测试发现,用BufferedInputStream读取xlsx后contentStr=new String(contentByte,charset);,再contentStr.getBytes(charset);以FileOutputStream输出,发现,如果charset是iso8859-1则文件没问题,如果是utf8,则文件出错,也试过换原文件,也看过xlsx文件的编码格式,没用。试了下xls,发现iso8859-1和utf8均没有问题。后来改了项目中的base64加解密,发现用iso8859-1各个文件包括xlsx都没问题。但是项目要求全部是utf8,虽然也可以加逻辑改成如果是xlsx就用iso8859-1,但是想知道原因。请大神指导。





2017年08月18日 03点08分
1




