我写了一个程序是下载数据库导出文件的程序(在WINDOWS下测试没有问题下载下来的文件是中文的,但是放到LINUX下就有问题了,根本无法下载,然后我自己加上了getbyte("iso-8859-1"),"gb2312"可以下载但是每次下载的文件名都不一样并且文件名是字母和数字组成没有中文),我把程序贴出来大家帮我看一下!!!!谢谢!!!DOWNLOAD.JSP   下载页面
<form name="form1" action="servlet/fileDownloadServlet" method="POST">
<table align="center">
<tr>
<td width="173" align="center"><strong>数据备份</strong></td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr><td align="center">
<select name="selectFile">
<option value="radcheck">用户信息</option>
<option value="radmanage">管理员信息</option>
<option value="clients">交换机信息</option>
<option value="usergroup">用户组信息</option>
<option value="radgroupreply">组信息</option>
</select>
</td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td align="center">
<input type="submit" value="下载" onClick="return checkFile();">
</td></tr>
</table>
</form>处理页面   这是SERVLET的doGet方法
public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
         
        response.setContentType("text/html");
        String filename = request.getParameter("selectFile");
        String filenamemap = null;
        if(filename.equalsIgnoreCase("radcheck"))
            filenamemap = new String("用户信息");
        if(filename.equalsIgnoreCase("radmanage"))
            filenamemap = new String("管理员信息");
        if(filename.equalsIgnoreCase("clients"))
            filenamemap = new String("交换机信息");
        if(filename.equalsIgnoreCase("usergroup"))
            filenamemap = new String("用户组信息");
        if(filename.equalsIgnoreCase("radgroupreply"))
         filenamemap = new String("组信息");
        
        filenamemap=ChangeEncoding.getEncoding(filenamemap);
        
        try{
        PageContext pageContext = JspFactory.getDefaultFactory().getPageContext(this,request,response,null,true,8192,true);
        ManageSmartUpload manageSmartUpload = new ManageSmartUpload();
        if(!filename.equalsIgnoreCase("clients")){
         ManageMysql manageMysql = new ManageMysql(filenamemap);
        File f = new File("/var/lib/mysql/radius/"+filenamemap+".txt");
if(f.exists()){
f.delete();
}
        manageMysql.OutData(filename);
        manageSmartUpload.setDownload(pageContext,filenamemap);
        manageSmartUpload.delFile(filenamemap+".txt");
        }else{
         manageSmartUpload.setDownload(pageContext,filename,filenamemap);
        }
        //this.getServletContext().getRequestDispatcher("/err.jsp?id=11").forward(request,response);
        //response.sendRedirect("../managedata.jsp");
        }catch(Exception ex){
         ex.printStackTrace();
        }
    }
ManageMysql 类
 /**
  * 导出数据到文件
  *
  */
public void OutData(String filename)
{
   try {
       con=ConnDB.getConn();
           String sql="use radius";
           String sql1="select * from "+filename+" into outfile '"+filenamemap+".txt'"; 
           Statement stmt=con.createStatement();
           stmt.execute(sql);
           stmt.execute(sql1);
           stmt.close();
           con.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}/*
  * 下载数据库备份文件
  */
    public void setDownload(PageContext pageContext,String filenamemap){
        try {
            mySmartUpload.initialize(pageContext);
            mySmartUpload.setContentDisposition(null);
            mySmartUpload.downloadFile("/var/lib/mysql/radius/"+filenamemap+".txt");
        } catch (ServletException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (SmartUploadException e) {
            e.printStackTrace();
        }
    }帮个忙吧各位大侠!!!!!!!