昨天在网上看了些文件下载的例子,发现中文文件名是乱码,然后又在网上搜啊搜,可是都解决不了,于是发帖求救
1、RequestDispatcher dispatcher = application.getRequestDispatcher(filenamedownload);
2、output = response.getOutputStream();
fis = new FileInputStream(filenamedownload);流读写
3、SmartUpload.downloadFile()
上面三个方法都出现乱码,前面两个是编码问题,要怎么转换?转成哪种编码?我搜的都不对
SmartUpload,网上说要改原代码,字符编码转换的,我也改了还是不对,我晕了
各路大侠帮帮忙啊
1、RequestDispatcher dispatcher = application.getRequestDispatcher(filenamedownload);
2、output = response.getOutputStream();
fis = new FileInputStream(filenamedownload);流读写
3、SmartUpload.downloadFile()
上面三个方法都出现乱码,前面两个是编码问题,要怎么转换?转成哪种编码?我搜的都不对
SmartUpload,网上说要改原代码,字符编码转换的,我也改了还是不对,我晕了
各路大侠帮帮忙啊
response.setHeader("Cache-Control", "no-cache");
对服务器进行解码
例子是这样的 改成楼上的?
response.setContentType("application/x-download");
能否详细点
如果我这个可用可以试下我这个。
http://topic.csdn.net/u/20100617/21/a6dccfb2-b793-4f24-a239-9acd65f1e2d7.html
只用我的下载部分就可以。
我用了 不行
response.reset();
response.setContentType("application/x-download");
response.addHeader("Content-Disposition", "attachment;filename="
+ new String(filenamedisplay.getBytes("utf-8"), "ISO8859-1"));
//filenamedisplay文件名
response.setHeader("Content-disposition","attachment; filename="+URLEncoder.encode(titlename, "UTF-8")+".xls");
<%@page language="java" import="java.net.*" pageEncoding="UTF-8"%>
<%
response.setContentType("application/x-download");
String filenamedownload = "/download/水调歌头.doc";
String filenamedisplay = "下载(水调歌头).doc";
filenamedisplay = URLEncoder.encode(filenamedisplay,"UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=" + filenamedisplay); try
{
RequestDispatcher dispatcher = application.getRequestDispatcher(filenamedownload);
if(dispatcher != null)
{
dispatcher.forward(request,response);
}
response.flushBuffer();
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
}
out.clear();
out = pageContext.pushBody();
%>我的是这样的 怎么改
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=" + fileName);
jsp页面加<%@ page language="java" contentType="text/html; charset=UTF-8"%>
一般没有问题.
1、浏览器与你工程的中间的转换,这里字符集不同也会有影响
2、工程中配置文件的字符集
3、tomcat和工程间的转换
中的filenamedisplay 转换能iso8859-1的编码filenamedisplay =new String(filenamedisplay.getBytes() ,'iso8859-1')