解決zip文件中文亂碼問題

? ? ? ?后臺微服務運行在linux環境里,前端Vue。在一個項目中,把后臺的文件打包成zip,下載到前臺。結果發現zip文件名本身亂碼,zip文件內壓縮的文件也是亂碼。所謂亂碼,程序員都見過,就是中文變成了亂七八糟的字符。

? ? ? ? 起初覺得問題比較簡單,網上導出都是解決方案。真正試試,一個不靈。最后還是公司技術大佬自己解決的。

? ? ? ? 不能說網上的東西都是錯了,但確實很大一部分都是沒有自己實踐,直接轉的。我們試了無效也不能說就是錯的,可能和環境、版本等等都有關系。自己實踐吧。

? ? ? ? 1、Zip文件中的文件名使用的是一種稱為"CP437"的字符集編碼,所以要按CP437編碼文件名字。?

? ? ? ? ? ? ZipEntry ze = new ZipEntry(文件名字);

? ? ? ? ? ??結果:文件名字這各種轉換,無效,怎么折騰都是亂碼,而且更亂。

? ? ? ? ? ? ?我們案例的正解:

? ? ? ? ZipOutputStream zos = new ZipOutputStream(fos);
? ? ? ? zos.setEncoding(“UTF-8”);

? ? ? ?2、zip文件名本身亂碼

      FileOutputStream fos = new FileOutputStream(文件名字);

? ? ? ? ? ?文件名字這里也是各種轉碼,折騰,全部無效。

? ? ? ? ? ?我們案例的正解:

? ? ? ? ? ? ? ? ? ?問題根本就不出現在這里,而是出現在前端。文件名稱是通過Content-Disposition頭傳遞的,attachment; filename=文件名,這里的文件名字要java.net.URLEncoder.encode處理下。

? ? ? ? ? ?如果各位也遇到類似問題,可以參照下。關鍵是分析到底那步出現的問題:是服務器端生成時出現的,還是傳遞過程中發生的。

? ? ? ? ?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/40876.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/40876.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/40876.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【CSAPP】-datalab實驗

實驗原理與內容 本實驗每位學生拿到一個datalab-handout.tar文件。學生可以通過U盤、網盤、虛擬機共享文件等方式將其導入到Unbuntu實驗環境中,選擇合適位置存放。然后在Ubuntu環境下解壓。解壓后,根據文件中的敘述和要求更改bits.c文件。本次實驗的主要…

【全網最全】2024年APMCM第十四屆亞太地區大學生數學建模競賽(中文賽項)完整思路解析+代碼+論文

我是Tina表姐,畢業于中國人民大學,對數學建模的熱愛讓我在這一領域深耕多年。我的建模思路已經幫助了百余位學習者和參賽者在數學建模的道路上取得了顯著的進步和成就。現在,我將這份寶貴的經驗和知識凝練成一份全面的解題思路與代碼論文集合…

云計算【第一階段(26)】Linux網絡設置

一、查看網絡配置 1.查看網絡接口信息ifconfig 查看所有活動的網絡接口信息 2.ifconfig命令 查看指定網絡接口信息 ifconfig 網絡接口 (1)第一行:以太網卡的名字 ens33其中en代表以太網卡, centos6的是eth0, e…

本地maven倉庫向遠程倉庫部署jar包

使用mvn命令即可,如下 mvn deploy:deploy-file \ -DgroupIdtop.rdfa.auth \ -DartifactIdrdfa-auth-spring-mvc-starter \ -Dversion3.0.0-20230718-RELEASE \ -Dpackagingjar \ -Dfile/Users/panmeng/Documents/repository/top/rdfa/auth/rdf…

中國算力網絡市場發展分析

中國算力網絡市場發展現狀 算力涵蓋計算、內存、存儲等全方位能力,廣泛分布于網絡邊緣、云計算中心、聯網設備及轉發節點。隨著數字化技術革新,算力與網絡正深度融合,推動“算網一體化”的演進。這一新型基礎設施日漸凸顯其重要性&#xff0c…

精準畜牧業:多維傳感監測及分析動物采食行為

全球畜牧業呈現出一個動態且復雜的挑戰。近幾十年來,它根據對動物產品需求的演變進行了適應,動物生產系統需要提高其效率和環境可持續性。在不同的畜牧系統中有效行動取決于科學技術的進步,這允許增加照顧動物健康和福祉的數量。精準畜牧業技…

numpy庫(python)

文章目錄 1.numpy簡介2.安裝numpy3.ndarry : numpy庫的心臟3.1 創建數組3.2數據類型3.3dtype NumPy是用Python.進行科學計算,尤其是數據分析時,所用到的一個基礎庫。它是大量Python 數學和科學計算包的基礎,比如后面要講到的pandas)庫就用到了…

前端面試題_Css

一、說一下Css的盒子模型? HTML中所有元素都可以看成是一個盒子 盒子的組成:content、padding、border、margin 盒子的類型: 標準盒模型:marginborderpaddingcontent -- box-sizing:content-box(默認&a…

Samtec汽車電子 | 汽車連接器如何在高要求、極端的環境中工作

【摘要/前言】 汽車電子,這些年來始終是極具流量的熱門話題,目前不斷發展的智能座駕、輔助駕駛等賽道都是對相關產業鏈需求的進一步刺激,這里蘊含著一片廣闊的市場。 同樣,廣闊的市場里有著極高的準入門檻和事關安全的技術挑戰。…

【AI】研發人員的《生存還是毀滅?》

AI在當前技術和社會環境下被視為一種強大的工具和輔助資源,而非一種取代人類開發者的替代品。在本文中,我們將詳細探討AI在多個領域的應用,如何與開發者相互作用,并分析AI對開發者角色的影響和未來的發展趨勢。 引言 人工智能&a…

Windows安全認證機制——Windows常見協議

一.LLMNR協議 1.LLMNR簡介 鏈路本地多播名稱解析(LLMNR)是一個基于域名系統(DNS)數據包格式的協議,使用此協議可以解析局域網中本地鏈路上的主機名稱。它可以很好地支持IPv4和IPv6,是僅次于DNS解析的名稱…

代謝組數據分析(十三):評估影響代謝物的重要臨床指標

歡迎大家關注全網生信學習者系列: WX公zhong號:生信學習者Xiao hong書:生信學習者知hu:生信學習者CDSN:生信學習者2介紹 相關性分析是通過計算兩個變量之間的相關系數來評估它們之間線性關系的強度和方向。最常用的是皮爾遜相關系數(Pearson correlation coefficient),…

security密碼明文

引言:在引入未給定初始化mysql數據springboot項目時,由于項目通過security對密碼進行了加密,無法進行登錄操作,提供的一種解決方法 1、注釋掉注入的加密類 // Autowired // private BCryptPasswordEncoder bCryptPassword…

軟件測試常見的面試題(46道)

01、您所熟悉的測試用例設計方法都有哪些?請分別以具體的例子來說明這些方法在測試用例設計工作中的應用。 答:有黑盒和白盒兩種測試種類,黑盒有等價類劃分法,邊界分析法,因果圖法和錯誤猜測法。白盒有邏輯覆蓋法&…

VBA通過Range對象實現Excel的數據寫入

前言 本節會介紹通過VBA中的Range對象,來實現Excel表格中的單元格寫入、區域范圍寫入,當然也可以寫入不同類型的數據,如數值、文本、公式,以及實現公式下拉自動填充的功能。 一、單元格輸入數據 1.通過Value方法實現輸入不同類型…

Windows上使用Navicat連接ubuntu上的mysql8報錯:10061和1130

問題一:can’t connect to mysql server on ‘192.168.xxx.xxx’(10061) 解決: sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf,bind-address綁定了登陸的IP,把這兩行代碼注釋掉,然后重啟mysql。 問題二:1…

利用MMDetection進行半監督目標檢測(僅供參考)

半監督目標檢測 準備和拆分數據集K則交叉驗證的解釋 完整的半監督配置文件代碼修改繼承的數據流文件代碼 多GPU訓練示范 參考 MMDetection半監督目標檢測,半監督目標檢測同時利用標簽數據和無標簽數據進行訓練,一方面可以減少模型對檢測框數量的依賴&am…

Swift 定制 Core Data 遷移

文章目錄 前言什么是 Core Data 遷移?示例更新模型創建一個新的模型版本創建映射模型編寫自定義遷移策略總結 前言 隨著應用程序和用戶群的增長,你需要添加新功能,刪除其他功能,并改變應用程序的工作方式。這是軟件開發生命周期的…

底層軟件 | 十分詳細,為了學習設備樹,我寫了5w字筆記!

0、設備樹是什么?1、DTS 1.1 dts簡介1.2 dts例子 2、DTC(Device Tree Compiler)3、DTB(Device Tree Blob)4、綁定(Binding)5、Bootloader compatible屬性 7、 #address-cells和#size-cells屬性8…

動態規劃入門,從簡單遞歸到記憶化搜索到動態規劃

動態規劃入門&#xff0c;從簡單遞歸到記憶化搜索到動態規劃 打家劫舍 class Solution {private int nums[];public int rob(int[] nums) {this.nums nums;return dfs(nums.length - 1);}public int dfs(int i){if (i < 0){return 0;}int res Math.max(dfs(i - 1), dfs(i…