下载中文名的文件文件名乱码问题,崩溃了,求救

HappyKeKe 2010-08-11 10:25:53
昨天在网上看了些文件下载的例子,发现中文文件名是乱码,然后又在网上搜啊搜,可是都解决不了,于是发帖求救
1、RequestDispatcher dispatcher = application.getRequestDispatcher(filenamedownload);
2、output = response.getOutputStream();
fis = new FileInputStream(filenamedownload);流读写
3、SmartUpload.downloadFile()
上面三个方法都出现乱码,前面两个是编码问题,要怎么转换?转成哪种编码?我搜的都不对
SmartUpload,网上说要改原代码,字符编码转换的,我也改了还是不对,我晕了
各路大侠帮帮忙啊
...全文
525 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
浩-121231 2011-09-30
  • 打赏
  • 举报
回复
Water_Nymph 2011-02-24
  • 打赏
  • 举报
回复
你是怎么解决的?
pengzhistar 2010-08-13
  • 打赏
  • 举报
回复
第三个 su.downloadFile("path","",URLEncoder.encode("你想要的文件名", "UTF-8"));
HappyKeKe 2010-08-13
  • 打赏
  • 举报
回复
问题解决了 谢谢各位
dinghw521 2010-08-12
  • 打赏
  • 举报
回复
问题还是自己找的好,别人并不清除你的环境,建议你从几个方面来检查字符集

主要是接个接口间的
1、浏览器与你工程的中间的转换,这里字符集不同也会有影响
2、工程中配置文件的字符集
3、tomcat和工程间的转换
HappyKeKe 2010-08-12
  • 打赏
  • 举报
回复
回答楼上的 不是上传时下载
tivy2009 2010-08-12
  • 打赏
  • 举报
回复
我觉得你可能从JSP页面传过去的时候就已经是乱码了,试着把文件名打印出来看看是否是乱码,若不是乱码,应该是可以的,一个上传功能用不着修改什么源码。
jsp页面加<%@ page language="java" contentType="text/html; charset=UTF-8"%>
一般没有问题.
HappyKeKe 2010-08-12
  • 打赏
  • 举报
回复
下载到client文件名是乱码 我试试楼上的
xieruilin 2010-08-12
  • 打赏
  • 举报
回复
一般都用英文的吧。
HappyKeKe 2010-08-12
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 dinghw521 的回复:]
问题还是自己找的好,别人并不清除你的环境,建议你从几个方面来检查字符集

主要是接个接口间的
1、浏览器与你工程的中间的转换,这里字符集不同也会有影响
2、工程中配置文件的字符集
3、tomcat和工程间的转换
[/Quote]
说的好 这些字符的转换总是搞不清楚 某个地方的字符编码从哪里看啊
zidasine 2010-08-12
  • 打赏
  • 举报
回复
将 response.setHeader("Content-Disposition", "attachment; filename=" + filenamedisplay);
中的filenamedisplay 转换能iso8859-1的编码

filenamedisplay =new String(filenamedisplay.getBytes() ,'iso8859-1')
liufeng0209 2010-08-12
  • 打赏
  • 举报
回复
将"水调歌头.doc"进行编码或者使用英文
xuejelly 2010-08-11
  • 打赏
  • 举报
回复
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition","attachment; filename="+URLEncoder.encode(titlename, "UTF-8")+".xls");
HappyKeKe 2010-08-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 lyq123333321 的回复:]
Java code

response.reset();
response.setContentType("application/x-download");
response.addHeader("Content-Disposition", "attachment;filename="
+ new String(filenamedisplay.getBytes("utf-8")……
[/Quote]
不对啊 救命啊
jack_liu4Ye 2010-08-11
  • 打赏
  • 举报
回复

response.reset();
response.setContentType("application/x-download");
response.addHeader("Content-Disposition", "attachment;filename="
+ new String(filenamedisplay.getBytes("utf-8"), "ISO8859-1"));
//filenamedisplay文件名
HappyKeKe 2010-08-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 kai27ks 的回复:]
这个东西处理起来是比较复杂的。有可能真要修改源码。毕竟你是用的编辑器
[/Quote]
MyEclipse?
HappyKeKe 2010-08-11
  • 打赏
  • 举报
回复
URLEncoder.encode(filenamedisplay,"UTF-8");
我用了 不行
kurama_mail 2010-08-11
  • 打赏
  • 举报
回复
你使用组件的话可能需要修改组件里有段对流处理和文件名字输出的代码部分,一般使用URLEncoder.encode(filename,"UTF-8")来设置需要下载的文件名。
如果我这个可用可以试下我这个。
http://topic.csdn.net/u/20100617/21/a6dccfb2-b793-4f24-a239-9acd65f1e2d7.html
只用我的下载部分就可以。
kai27ks 2010-08-11
  • 打赏
  • 举报
回复
这个东西处理起来是比较复杂的。有可能真要修改源码。毕竟你是用的编辑器?
HappyKeKe 2010-08-11
  • 打赏
  • 举报
回复
火狐不行
加载更多回复(13)

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧