文档章节

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

wuxinshui
 wuxinshui
发布于 2017/02/28 11:12
字数 236
阅读 198
收藏 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

wuxinshui

粉丝 3
博文 95
码字总数 53954
作品 0
普陀
程序员
私信 提问
加载中

评论(0)

securecrt连接sunos5.1,文件中文名复制等操作乱码

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

让您贱笑了
2014/10/11
491
1
各浏览器下载文件名不乱码的解决办法

在项目中发现,使用Safari下载中文名文件的时候,下载的文件名是乱码的问题。但是这个问题在IE,Firefox,Chrome中是没有的。原先以为是Safari的bug,但是细细研究之下你会发现这个简单的文件...

osc_38q1uccr
2018/03/29
3
0
linux中ftp中文名乱码问题

问题触发环境 1. java中使用org.apache.commons.net.ftp.FTPClient包 2. 通过chrome浏览器的file标签上传文件 3. 在windows上部署的FileZilla服务上传的文件名正常显示,在linux上的vsftpd服...

osc_3d642bby
01/04
1
0
Java使用SFTP和FTP两种连接方式实现对服务器的上传下载 【我改】

【】如何区分是需要使用SFTP还是FTP? 【】我觉得: 1、看是否已知私钥。   SFTP 和 FTP 最主要的区别就是 SFTP 有私钥,也就是在创建连接对象时,SFTP 除了用户名和密码外还需要知道私钥 ...

osc_gl1bo05e
2019/03/23
7
0
response.setHeader()的用法 (转别人转的)

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

yifon
2014/04/19
177
0

没有更多内容

加载失败,请刷新页面

加载更多

一言难尽,Jpa这个功能差点让我丢了工作

故事背景 前阵子,有位朋友在微信上问我数据被删了能不能恢复,我问了下原因,居然是因为一个配置项惹的祸。 故事细节 在 Spring Boot 中使用 jpa 来操作数据库,jpa 就不做详细的介绍了,相...

osc_axe50nd6
10分钟前
12
0
Link Cut Tree

//知识点 : LCT /*By:Luckyblock*/#include <cstdio>#include <ctype.h>#include <algorithm>#define ls (t[x].son[0])#define rs (t[x].son[1])const int kMaxn = 1e5 + 10;//===......

osc_q5urtsdm
11分钟前
19
0
【问题】Could not locate PropertySource and the fail fast property is set, failing

这是我遇到的问题 Could not locate PropertySource and the fail fast property is set, failing springcloud的其他服务读取不了配置中心得配置文件出错,原因是配置中心的一个配置文件有s...

osc_z9jr2tjo
13分钟前
5
0
Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(四)

在上一讲中,我们已经完成了一个完整的案例,在这个案例中,我们可以通过Angular单页面应用(SPA)进行登录,然后通过后端的Ocelot API网关整合IdentityServer4完成身份认证。在本讲中,我们...

osc_doeya1ck
14分钟前
16
0
[推荐]大量 Blazor 学习资源(一)

前言 / Introduction Blazor 是什么? Blazor 允许您使用 C# 而不是 JavaScript 构建交互式 Web UI。 Blazor 应用由使用 C#、HTML 和 CSS 实现的可重用 Web UI 组件组成。客户端和服务器代码...

osc_3r4js8qy
14分钟前
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部