Java文件下载中文名不显示&乱码
Java文件下载中文名不显示&乱码
wuxinshui 发表于9个月前
Java文件下载中文名不显示&乱码
  • 发表于 9个月前
  • 阅读 5
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 学生专属云服务套餐 10元起购>>>   

问题

Java开发中,文件上传下载是很常用的功能。实际开发中遇到了中文名不显示的问题,一开始以为是后台代码的原因,网上查了一些资料,原来是Header中只支持ASCII,传输的文件名必须是ASCII。为什么Header只支持ASCII呢?

解决方案

直接贴代码

filename = new String(filename .getBytes(), "ISO-8859-1");
//filename = URLEncoder.encode(file_name,"UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");

原因

  1. 为什么用ISO-8859-1,看度娘的解释

    ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。

  2. URLEncoder为什么用UTF-8
    CSDN

参考

网上也有一些大牛做了一些编码设置的测试,可以参考这里。还有一些编码基础知识。

共有 人打赏支持
粉丝 3
博文 52
码字总数 28324
×
wuxinshui
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: