zoukankan      html  css  js  c++  java
  • 下载文件时,文件名乱码问题

    在文件下载时通过在报文头中设置文件名来设置下载的文件名。例

    response.setHeader("Content-Disposition", "attachment;fileName=" + fileName)

     但假如文件名为中文的时候,会发现文件名乱码。处理方法是讲文件名根据不同的浏览器转码。

    /**
    	 * 根据不同浏览器将文件名中的汉字转为UTF8编码的串,以便下载时能正确显示另存的文件名.
    	 * 
    	 * @param s
    	 *            原文件名
    	 * @return 重新编码后的文件名
    	 */
    	public static String toUtf8String(HttpServletRequest request, String s) {
    		String agent = request.getHeader("User-Agent");
    		try {
    			boolean isFireFox = (agent != null && agent.toLowerCase().indexOf(
    					"firefox") != -1);
    			if (isFireFox) {
    				s = new String(s.getBytes("UTF-8"), "ISO8859-1");
    			} else {
    				s = toUtf8String(s);
    				if ((agent != null && agent.indexOf("MSIE") != -1)) {
    					// see http://support.microsoft.com/default.aspx?kbid=816868
    					if (s.length() > 150) {
    						// 根据request的locale 得出可能的编码
    						s = new String(s.getBytes("UTF-8"), "ISO8859-1");
    					}
    				}
    			}
    		} catch (UnsupportedEncodingException e) {
    			e.printStackTrace();
    		}
    		return s;
    	}
  • 相关阅读:
    BZOJ2962: 序列操作
    BZOJ2037: [Sdoi2008]Sue的小球
    LOJ#2537. 「PKUWC2018」Minimax
    LOJ#2538. 「PKUWC2018」Slay the Spire
    BZOJ4756 [USACO17JAN]Promotion Counting晋升者计数
    BZOJ2212——线段树合并
    atcoder.keyence2019.contest E-Connecting Cities
    [转载]笛卡尔树
    大数模板
    点分治
  • 原文地址:https://www.cnblogs.com/pigga/p/10098239.html
Copyright © 2011-2022 走看看