From 40249b1a7a339f2e07079b79a273718b58cf89af Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 16 十二月 2025 16:40:51 +0800
Subject: [PATCH] 【丽水】随访统计导出中文乱码问题修复

---
 ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java |   30 ++++++++----------------------
 1 files changed, 8 insertions(+), 22 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
index ac4dd92..c81ec58 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
@@ -1449,19 +1449,6 @@
     }
 
     /**
-     * 鍒ゆ柇鏄惁涓轰綆鐗堟湰娴忚鍣�
-     *
-     * @param request 娴忚鍣ㄨ姹傚ご
-     * @return
-     */
-    public static boolean isLowVersionBrowser(HttpServletRequest request) {
-        String userAgent = request.getHeader("User-Agent");
-        return userAgent.contains("msie")
-                || userAgent.contains("Trident")
-                || userAgent.contains("Edge");
-    }
-
-    /**
      * 璁剧疆瀵煎嚭Excel鏂囦欢鍚嶇О
      * @param response 杩斿洖鏁版嵁
      * @param request 娴忚鍣ㄨ姹傚ご
@@ -1472,16 +1459,15 @@
             //浼氭竻绌哄搷搴旂紦鍐插尯鐨勫唴瀹癸紝纭繚鍚庣画杈撳嚭涓嶄細鍙楀埌涔嬪墠鏁版嵁鐨勫奖鍝�
             response.reset();
             // 瀹氫箟娴忚鍣ㄥ搷搴旇〃澶达紝椤哄甫瀹氫箟涓嬭浇鍚�
-            if (isLowVersionBrowser(request)) {
-                fileName = URLEncoder.encode(fileName, "UTF8") + ".xlsx";
-                response.setHeader("Content-Disposition",
-                        "attachment;filename=" + fileName);
-            } else {
-                response.setHeader("Content-Disposition",
-                        "attachment;filename=" + new String((fileName + ".xlsx").getBytes("gb2312"), "ISO8859-1"));
-            }
+            fileName = fileName + ".xlsx";
+            // 瀵规枃浠跺悕杩涜URL缂栫爜锛屾敮鎸佷腑鏂囨枃浠跺悕
+            String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
+            // 浣跨敤 filename* 鍙傛暟鏀寔 UTF-8 缂栫爜锛圧FC 5987锛夛紝鍚屾椂淇濈暀 filename 鍙傛暟鍏煎鏃ф祻瑙堝櫒
+            response.setHeader("Content-Disposition", "attachment; filename=\"" + encodedFileName +
+                    "\"; filename*=utf-8''" + encodedFileName);
             // 瀹氫箟涓嬭浇鐨勭被鍨嬶紝鏍囨槑鏄痚xcel鏂囦欢
-            response.setContentType("application/vnd.ms-excel");
+            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+            response.setCharacterEncoding("utf-8");
         }catch (Exception e){
             log.error("{}璁剧疆瀵煎嚭Excel鏂囦欢鍚嶇О寮傚父,{}", fileName, e.getMessage());
         }

--
Gitblit v1.9.3