千家信息网

ServletResponse下载文件乱码怎么办

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章给大家分享的是有关ServletResponse下载文件乱码怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。通常来说解决乱码两个方式:1、把文件名(包括汉字)编
千家信息网最后更新 2025年01月16日ServletResponse下载文件乱码怎么办

这篇文章给大家分享的是有关ServletResponse下载文件乱码怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

通常来说解决乱码两个方式:

1、把文件名(包括汉字)编码成UTF-8

String downloadOrigalFile = "测试文件乱码.xlsx";

String downloadFileName = java.net.URLEncoder.encode(downloadOrigalFile, "UTF-8");

response.setHeader("Content-Disposition", "p_w_upload; filename=" + downloadFileName);

如果文件名中出现空格,需要把空格替换为%20,UTF-8下+表示空格

downloadFileName = downloadFileName.replace("+", "%20");

2、把文件名编码成ISO-8859-1(因为默认编码是ISO-8859-1)

String downloadOrigalFile = "测试文件乱码.xlsx";

final String LOCALE_ENCODING = "gb2312";

// 此处的LOCALE_ENCODING=gb2312:通常可以使用java的System.getProperties()遍历察看获得,

// 一般有两个值可能和此有关,请参考结合实际情况使用。

// sun.jnu.encoding=GBK

// file.encoding=UTF-8

final String DEFAULT_ENCODING = "ISO-8859-1";

String downloadFileName = new String(downloadOrigalFile.getBytes(LOCALE_ENCODING), DEFAULT_ENCODING);

如果文件名中出现空格,需要把空格替换为%20

downloadFileName = downloadFileName.replace(" ", "%20");

// 此处的getBytes()如果不指定编码,在跨平台的时候可能会出现问题,建议明确指定编码。

response.setHeader("Content-Disposition", "p_w_upload; filename=" + downloadFileName);

====

3、如果要在浏览器地址中显示中文,一般需要修改web容器的默认编码URIEncoding="UTF-8"

(即用get的方式直接下载文件)

例如tomcat容器,在TOMCAT_HOME/conf/server.xml中的如下位置加入

connectionTimeout="20000"

redirectPort="8443" />

4、URL中常用的特殊编码

+ URL 中+号表示空格 %2B

空格 URL中的空格可以用+号或者编码 %20

/ 分隔目录和子目录 %2F

? 分隔实际的URL和参数 %3F

% 指定特殊字符 %25

# 表示书签 %23

& URL 中指定的参数间的分隔符 %26

= URL 中指定参数的值 %3D

感谢各位的阅读!关于"ServletResponse下载文件乱码怎么办"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

文件 空格 编码 乱码 文件名 UTF-8 参数 怎么办 特殊 两个 中指 内容 实际 容器 方式 更多 篇文章 参考 有关 测试 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 扬州互联网软件开发常见问题 计算机网络技术职场环境认知 中国兵器工业集团软件开发 酒店点菜系统数据库的建立 sql数据库列表求和语句 织梦数据库直接恢复工具 软件开发转岗测试 太原天融信网络安全技术有限公司 网络技术是什么决策 宿松软件开发公司 沈阳app软件开发公司有哪些 护士网络安全心得体会 SEE板块经济数据库 网融天下(北京)网络技术有限公司 兴化巨型网络技术价格查询 从另多个表格提取数据库 阿里云服务器充值多久到账 世界上最久远的服务器排名 汕尾软件开发公司制作 opc服务端软件开发工具 软件软件开发设计 魔兽正式服亚雷戈斯服务器 瑞涛软件开发 学校网络安全的目标是什么 软件开发 公司 网络安全宣传员职业体验 荒野乱斗为啥老是正在连接服务器 了解数据库虚拟化的五个关键点 济南招工软件开发 app软件开发的相关知识
0