string useragent = request.getheader("user-agent"); string formfilename = file.getfilename(); // 针对ie或者以ie为内核的浏览器: if (useragent.contains("msie") || useragent.contains("trident")) { formfilename = java.net.urlencoder.encode(formfilename, "utf-8"); } else { // 非ie浏览器的处理: formfilename = new string(formfilename.getbytes("utf-8"), "iso-8859-1"); } response.setheader("content-disposition",string.format("attachment; filename=\"%s\"", formfilename)); response.setcontenttype("multipart/form-data"); response.setcharacterencoding("utf-8");
encode() 方法以指定的编码格式编码字符串。
string的getbytes()方法是得到一个操作系统默认的编码格式的字节数组。
string.getbytes(string decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示。
更多java知识请关注java基础教程。
以上就是java文件下载乱码解决方法的详细内容。
