这是服务器端的下载代码
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@SuppressWarnings("serial")
public class DownLoad extends HttpServlet { @Override
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String path = new String(request.getParameter("filename").getBytes(
"ISO-8859-1"), "GB2312");
// path=new String(path.getBytes("ISO-8859-1"),"utf-8");
download(path, request, response);
} @SuppressWarnings("deprecation")
public HttpServletResponse download(String path,
HttpServletRequest request, HttpServletResponse response) {
try {
// path是指欲下载的文件的路径。
File file = new File("F:/" + path);
// 取得文件名。
String filename = file.getName();
// 取得文件的后缀名。
// String ext = filename.substring(filename.lastIndexOf(".") +
// 1).toUpperCase(); // 以流的形式下载文件。
InputStream fis = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 设置response的Header
response.addHeader("Content-Disposition", "attachment;filename="
+ new String(filename.getBytes("GBK"), "ISO-8859-1"));
response.addHeader("Content-Length", "" + file.length());
OutputStream toClient = new BufferedOutputStream(response
.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (IOException ex) {
ex.printStackTrace();
}
return response;
}
}这里是下载的文件名称
response.addHeader("Content-Disposition", "attachment;filename="
+ new String(filename.getBytes("GBK"), "ISO-8859-1"));用谷歌浏览器和ie测试都可以正常显示中文文件名称
那么在android中该如何转码
以下是部分android代码
private class DownloaderTask extends AsyncTask<String, Void, String> { public DownloaderTask() {
} @Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub

String url = params[0];
// Log.i("tag", "url="+url);

try {
url = new String(url.getBytes(), "GBK");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//

String fileName = url.substring(url.lastIndexOf("/") + 1);
fileName = fileName.replace("downLoad?filename=", ""); Log.i("tag", "fileName=" + fileName); File directory = Environment.getExternalStorageDirectory();
File file = new File(directory, fileName);试了好多 怎么转都转不了中文 都是%25D0%25C7%25B3%25BD%25B1%25E4.txt这样的   
问一下try {
url = new String(url.getBytes(), "GBK");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}这里该怎么写?AndroidWebView下载编码