当前位置: 技术问答>java相关
下载文件,中文文件名显示问题
来源: 互联网 发布时间:2015-07-15
本文导语: 请教一个问题,就是我从库里下载文件,取出了中文的Filename, 默认显示在下载对话框中,Filename就会变成几个字母(每次还不一样), 但是E文的不存在这个问题,代码是这样的,麻烦指点指点! String filename=rs.getStri...
请教一个问题,就是我从库里下载文件,取出了中文的Filename,
默认显示在下载对话框中,Filename就会变成几个字母(每次还不一样),
但是E文的不存在这个问题,代码是这样的,麻烦指点指点!
String filename=rs.getString("FILENAME");
byte b[] = rs.getBytes("ATTACHMENT");
response.setContentType("application/text");
response.setHeader("Content-Disposition", "attachment; filename="+filename);
System.out.println(b.length);
response.getOutputStream().write(b, 0, b.length);
默认显示在下载对话框中,Filename就会变成几个字母(每次还不一样),
但是E文的不存在这个问题,代码是这样的,麻烦指点指点!
String filename=rs.getString("FILENAME");
byte b[] = rs.getBytes("ATTACHMENT");
response.setContentType("application/text");
response.setHeader("Content-Disposition", "attachment; filename="+filename);
System.out.println(b.length);
response.getOutputStream().write(b, 0, b.length);
|
……老大,你从来不收短消息吗?我已经把答案发给你一次了……
|
response.setHeader("Content-disposition","attachment; filename="
+new String(filename.getBytes(),"iso8859-1"));
+new String(filename.getBytes(),"iso8859-1"));
|
还好,碰到我了,下面的两个方法分别是汉字的处理问题
//向数据库中存储中文
public String getStr(String str)
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859_1");
String temp=new String(temp_t);
return temp;
}
catch(Exception e)
{ return "null";}
}
//从向数据库中提取中文
public String getStr1(String str)
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("GBK");
String temp=new String(temp_t,"ISO8859_1");
return temp;
}
catch(Exception e)
{ return "null";}
}
}
将String filename=rs.getString("FILENAME");改为
String filename=getStr1(rs.getString("FILENAME"));就可以了
还有就是向数据库中存储中文时,一定要用getStr()处理一下
//向数据库中存储中文
public String getStr(String str)
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859_1");
String temp=new String(temp_t);
return temp;
}
catch(Exception e)
{ return "null";}
}
//从向数据库中提取中文
public String getStr1(String str)
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("GBK");
String temp=new String(temp_t,"ISO8859_1");
return temp;
}
catch(Exception e)
{ return "null";}
}
}
将String filename=rs.getString("FILENAME");改为
String filename=getStr1(rs.getString("FILENAME"));就可以了
还有就是向数据库中存储中文时,一定要用getStr()处理一下