解决文件下载时文件名中的中文变成下划线的问题
最近写完了文件下载接口之后,发现文件的名称是英文还能够保持原样,但是一旦文件名中有中文就会这样 文件名中的中文全部变成了下划线,这一看就是字符转化的时候出了问题 选择在文件名生成的时候进行转码
FileResource fr
= filePathRepository
.findById(fileId
).get();
byte[] fileNameBytes
= fr
.getFilename().getBytes(StandardCharsets
.UTF_8
);
String fileName
= new String(fileNameBytes
, 0, fileNameBytes
.length
, StandardCharsets
.ISO_8859_1
);
这里在获取文件名之后对其进行转码再进行操作,就可以避免中文字符全部变成下划线的问题了。