国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java下載文件時文件名亂碼問題解決辦法

2019-11-26 16:11:35
字體:
供稿:網(wǎng)友
復(fù)制代碼 代碼如下:

public static String toUtf8String(String s) {

             StringBuffer sb = new StringBuffer();
             for (int i = 0; i < s.length(); i++) {
                 char c = s.charAt(i);
                 if (c >= 0 && c <= 255) {
                     sb.append(c);
                 } else {
                     byte[] b;
                     try {
                         b = Character.toString(c).getBytes("utf-8");
                     } catch (Exception ex) {
                         exceptionUtil.error("將文件名中的漢字轉(zhuǎn)為UTF8編碼的串時錯誤,輸入的字符串為:" + s);
                         b = new byte[0];
                     }
                     for (int j = 0; j < b.length; j++) {
                         int k = b[j];
                         if (k < 0)
                             k += 256;
                         sb.append("%" + Integer.toHexString(k).toUpperCase());
                     }
                 }
             }
             return sb.toString();
         }

         /**
          * 根據(jù)不同瀏覽器將文件名中的漢字轉(zhuǎn)為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 = StringUtil.toUtf8String(s);
                     if ((agent != null && agent.indexOf("MSIE") != -1)) {
                         // see http://support.microsoft.com/default.aspx?kbid=816868
                         if (s.length() > 150) {
                             // 根據(jù)request的locale 得出可能的編碼
                             s = new String(s.getBytes("UTF-8"), "ISO8859-1");
                         }
                     }
                 }
             } catch (UnsupportedEncodingException e) {
                 e.printStackTrace();
             }
             return s;
         }
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 满洲里市| 台湾省| 灵璧县| 思南县| 泰来县| 当阳市| 海宁市| 如皋市| 石屏县| 温州市| 孝义市| 奎屯市| 阿巴嘎旗| 淮安市| 铅山县| 疏勒县| 临城县| 田东县| 都安| 曲沃县| 普兰店市| 晋城| 柳林县| 滨州市| 武安市| 大荔县| 北宁市| 海南省| 瑞丽市| 公安县| 虞城县| 宝兴县| 中西区| 西城区| 九台市| 疏附县| 上饶县| 遂平县| 海原县| 泗阳县| 赤水市|