前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java文件下载中文名不显示&乱码

Java文件下载中文名不显示&乱码

作者头像
用户2146693
发布2019-08-08 15:08:40
1.4K0
发布2019-08-08 15:08:40
举报
文章被收录于专栏:架构师进阶

问题

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

解决方案

直接贴代码

代码语言:javascript
复制
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

参考

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 解决方案
    • 原因
    • 参考
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档