文档章节

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

wuxinshui
 wuxinshui
发布于 2017/02/28 11:12
字数 236
阅读 15
收藏 0

问题

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

参考

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

© 著作权归作者所有

共有 人打赏支持
wuxinshui
粉丝 2
博文 65
码字总数 33475
作品 0
普陀
程序员
私信 提问
securecrt连接sunos5.1,文件中文名复制等操作乱码

各位兄弟,请教问题: 写了一个java程序从unix相应目录里下载中文名的文件,文件名(中文)作为参数从页面post到后台拼成要访问的文件路径,比如path="/appdatas/alarm/规范.doc",而在unix上...

让您贱笑了
2014/10/11
426
1
Tomcat中文乱码问题的原理和解决方法

Tomcat中文乱码问题的原理和解决方法   自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决,现将我们的解决心得与大家共享。   一、Java中文问题的由...

孙斐
2013/02/26
0
0
response.setHeader()的用法 (转别人转的)

response.setHeader()下载中文文件名乱码问题 收藏 1. HTTP消息头 (1)通用信息头 即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma 主要: Cac...

yifon
2014/04/19
0
0
Centos下安装类百度文库环境

使用php实现百度文库功能,网上搜索到的方案,实现doc转pdf,pdf转swf,然后显示出来。 这里简单的记录下,【doc转pdf,pdf转swf】两个功能的搭建流程。 doc转pdf 使用到下列程序(文件): Ap...

DragonFK
2013/02/20
0
1
response.setHeader()下载中文文件名乱码问题

HTTP消息头 (1)通用信息头 即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma 主要: Cache-Control , Connection , Data , Pragma , Trailer , ...

Dicky
2011/10/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

使用Autowired和Qualifier解决多个相同类型的bean如何共存的问题

注意: 实现类UserServiceImpl,MyUserServiceImpl 需要区分:@Service("userServicel") @Service("myUserService") https://blog.csdn.net/russle/article/details/80287763......

qimh
33分钟前
2
0
SQL 语句使用to_char函数时,检索结果有空格

小疯在使用Oracle过程中,使用to_char函数检索表数据时发现检索结果前面会有一个空格,对后续开发有影响。问题很好解决,比较直接对可以做一下trim处理。但是小疯很疑惑为什么会有空格呢,于...

野小疯
34分钟前
1
0
对接比特币钱包的PHP开发包

BtcTool是一个基于第三方服务和离线裸交易实现的PHP比特币应用开发包,适合不希望部署本地 节点旳PHP开发者,开发包主要包含以下特性: 利用第三方服务获取指定地址的utxo集合 离线生成消费裸...

汇智网教程
52分钟前
1
0
【自用】 VHD to VHDX

VHDX: 在VHD 2TB 的基础上提供 64TB的容量。 支持逻辑扇区大小为 4KB,和每块的大小为 256MB,来优化虚拟磁盘性能。 比VHD提供更高的安全性、可靠性和性能。 convert-VHD –path d:\Hyper-v...

Tensor丨思悟
今天
3
0
30 岁转行做Python开发晚吗?而且是零基础

最近有小伙伴问小编,30 岁转行做Python开发晚吗? 小编想说,其实无论男女,只要想学,有这个动力,就直接去行动。无论年龄,无论性别,只要你想一直勇往直前,那么想做的就去做吧~这里有一...

糖宝lsh
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部