- public class DownloadServlet extends HttpServlet {
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // codes..
- String name = "中文名 帶空格 的測(cè)試文件.txt";
- String userAgent = request.getHeader("User-Agent");
- byte[] bytes = userAgent.contains("MSIE") ? name.getBytes() : name.getBytes("UTF-8"); // name.getBytes("UTF-8")處理safari的亂碼問(wèn)題
- name = new String(bytes, "ISO-8859-1"); // 各瀏覽器基本都支持ISO編碼
- response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", name)); // 文件名外的雙引號(hào)處理firefox的空格截?cái)鄦?wèn)題
- // codes..
- }
- }
這段代碼處理了文件下載時(shí)不同瀏覽器解析中文文件名所出現(xiàn)的亂碼問(wèn)題和firefox的空格截?cái)鄦?wèn)題,在IE9, chrome, opera, safari, firefox下均測(cè)試通過(guò)。
|