为什么会出现乱码???

CSDN_HSB 2004-04-16 10:39:16
我是这样下载文件的:<%@page import="java.*"%>
<%
String filename="admin/download/pic/"+request.getParameter("file");//获得下载文件地址
response.setContentType("application/x-download");//用MS的直接下载工具。
response.setHeader("Content-disposition","attachment; filename="+request.getParameter("file"));//下载时,文件的命名
BufferedInputStream bis = null;//输出流
BufferedOutputStream bos = null;//输入流
bis = new BufferedInputStream(new FileInputStream(getServletContext().getRealPath(filename)));//将文件读入缓冲区
bos = new BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];//每次读取2048byte
int bytesRead;//读的数量
while(-1 != (bytesRead = bis.read(buff,0,buff.length))){//循环读取缓冲区的数据
bos.write(buff,0,bytesRead);//输出
}

%>

下载下来后,打开文档是乱码,服务器上的文件打开不是乱码?这是怎么回事,有什么解决方法吗?
...全文
49 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
surefire 2004-04-27
  • 打赏
  • 举报
回复
我用new String(request.getParameter("file").getBytes("ISO-8859-1"),"gb2312")解决了中文乱码问题
felix1999 2004-04-16
  • 打赏
  • 举报
回复
你把这一句response.setContentType("application/x-download");中的application/x-tar试试,我之前做过一个下载程序,下面是代码,你参考一下:
long totalsize=0;
File f=new File("E://school.rar");
long filelength=f.length();
byte[] b=new byte[1024];
FileInputStream fin=new FileInputStream(f);
DataInputStream in=new DataInputStream(fin);
//有这一句则下载,无则从浏览器打开
res.setHeader("Content-disposition","attachment;filename=school.rar");
res.setContentType("application/x-tar");
String filesize=Long.toString(filelength);
res.setHeader("Content-Length",filesize);
ServletOutputStream servletOut=res.getOutputStream();
while(totalsize<filelength){
totalsize+=1024;
if(totalsize>filelength){
byte[] leftpart=new byte[1024-(int)(totalsize-filelength)];
in.readFully(leftpart);
servletOut.write(leftpart);
}
else{
in.readFully(b);
servletOut.write(b);
}
}
niyboy 2004-04-16
  • 打赏
  • 举报
回复
既然是乱码;那就转化一下就行了麻
surefire 2004-04-16
  • 打赏
  • 举报
回复
request.getParameter("file");老兄。我近几天也是被搞得云里雾里,file的值本来是中文,可是得到的确实乱码,有没有谁能告诉一下咯?

81,095

社区成员

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

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