我在采用tomcat5.05作服务器,点击超链接下载时浏览器直接打开文件,并出现乱码,下载文件为word文档时没有问题,直接打开,当下载文件为excel文件时,就用游览器直接打开了,并出现乱码,有哪为高手帮我解决一下,是不是tomcat不认识这几种类型的文件啊.
另外我点另存为时,能否在程序中指定存的文件,现在的文件名是数据库里存的,用数字随机生成的,我想在保存时另外指定,不知怎么实现
另外我点另存为时,能否在程序中指定存的文件,现在的文件名是数据库里存的,用数字随机生成的,我想在保存时另外指定,不知怎么实现
解决方案 »
- Ajax 返回乱码 responseText中文乱码求解决。
- java.sql.SQLException: 列名无效
- 求解简单正则匹配问题..为什么我写正则老匹配不上
- java执行ANT报错,其中ANT构建Hibernate中的hbm生成POJO和数据库定义
- spring2.5问题
- .NET 和 J2EE目前哪个就业好点啊
- <html:error>和<html:message>我问题
- 想兼职的兄弟看过来
- 如何在servlet中得到客户端的port(端口)
- 【新手学习spring】
- servlet中通过sql2000用dispacther实现页面转向后的整个JSP页面都是乱码了~~~~~大虾们帮帮我啊~!
- java 调用储存过程插入和修改数据,中文乱码问题
protected void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
ServletOutputStream out = response.getOutputStream();
ServletContext context = getServletConfig().getServletContext();
try{
response.setContentType(request.getParameter("fileType"));
String filePath= request.getParameter("filePath");
InputStream istream = context.getResourceAsStream(filePath);
BufferedInputStream bis = new BufferedInputStream(istream);
BufferedOutputStream bos = new BufferedOutputStream(out);
byte[] buffer = new byte[4096];
int size;
size = bis.read(buffer);
while (size != -1){
bos.write(buffer,0,size);
size = bis.read(buffer);
}
bis.close();
bos.flush();
}
catch(Exception e){
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
doGet(request,response);
}}
1) 所有的jsp页面指定字符编码方式,如:Charest=gb2312,Charest=UTF-8等等
2) 在应用服务器中的server.xml方件中找到设置服务器端口的行,一般是这样开头:”<Connector port="8080"”,
3) 在找到的行"<Connector"开头的字符串后加上:URIEncoding="UTF-8" ,保存文件
--------------------------------------------------------------------------
jsp页面有乱码解决方法 所有的jsp页面指定字符编码方式,如:Charest=gb2312,Charest=UTF-8等等
<%@ page contentType="text/html; charset=UTF-8">
--------------------------------------------------------------------------
jsp单个中文参数乱码解决方法 用这个转换一下:
<%!String trans(String chi)
{
string result =null;
byte temp[];
temp=chi.getBytes("iso=8859-1");
result= new String(temp);
}
%>
或者直接这样:
<%
request.setCharacterEncoding("UTF-8");
out.println(request.getParameter("参数ID")
%>
--------------------------------------------------------------------------
{
if(s==null){s="";}
try
{
byte[] b=s.getBytes("ISO-8859-1");
s=new String(b);
}
catch(Exception e)
{
s="";}
return s;
}加上这个方法就OK 了