標題:解決 ZipUtil.unzip 無效的 CEN 標頭(錯誤的條目名稱)
日期:2021-08-31 12:00:54
toc:true
類別:
- 技巧
標籤: - 技巧
- 解決
- 錯誤
- 7-zip
7-zip 壓縮的 zip 文件裡面帶有中文文件名的,在其他平台上解壓後中文文件名亂碼。在網上查找了下資料,使用 7-zip 壓縮 zip 文件,可以使用參數 cu=on,強制文件名以 utf-8 格式編碼,在其他平台上解壓後正常。
下圖為 7-zip 壓縮 zip 格式時,文件名為中文時使用 cu=on 參數,強制中文文件名以 utf-8 編碼
via。https://bbs.360.cn/thread-6400121-1-1.html
7-zip 相關參數#
壓縮#
參數 預設值 說明
x=[0 | 1 | 3 | 5 | 7 | 9 ] 5 設定壓縮級別。
m={MethodID} Deflate 設定方法:Copy、Deflate、Deflate64、BZip2、LZMA、PPMd。
fb={NumFastBytes} 32 設定Deflate編碼器的快速字節數。
pass={NumPasses} 1 設定Deflate編碼器的通過次數。
d={Size}[b|k|m] 900000 設定BZip2的字典大小。
mem={Size}[b|k|m] 24 設定用於PPMd的內存大小。
o={Size} 8 設定PPMd的模型順序。
mt=[off | on | {N}] on 設定多線程模式。
em={EncryptionMethodID} ZipCrypto 設定加密方法:ZipCrypto、AES128、AES192、AES256。
tc=[off | on] off 存儲文件的NTFS時間戳:修改時間、創建時間、最後訪問時間。
cl=[off | on] off 7-Zip始終使用本地代碼頁來處理文件名。
cu=[off | on] off 7-Zip使用UTF-8編碼處理包含非ASCII符號的文件名。
默認情況下(如果未指定 cl 和 cu 開關),7-Zip 僅對包含本地代碼頁不支持的符號的文件名使用 UTF-8 編碼。
x = [0 | 1 | 3 | 5 | 7 | 9]#
設定壓縮級別。x = 0 表示複製模式(無壓縮)。
Deflate/Deflate64 設定:
級別 快速字節數 通過次數 說明
1 32 1 最快
3 快
5 正常
7 64 3 最大
9 128 10 超高
x = 1 且 x = 3,Deflate 方法設定快速模式進行壓縮。
BZip2 設定:
級別 字典大小 通過次數 說明
1 100000 1 最快
3 500000 快
5 900000 正常
7 2 最大
9 7 超高
fB = {} 單詞大小#
設定 Deflate/Deflate64 編碼器的快速字節數。它可以在 3 到 258 的範圍內(Deflate64 為 257)。通常,大數字會提供更好的壓縮比和更慢的壓縮過程。較大的快速字節參數可以顯著提高包含長相同字節序列的文件的壓縮率。
通過 =#
設定 Deflate 編碼器的通過次數。對於 Deflate,它可以在 1 到 15 之間,對於 BZip2,它可以在 1 到 10 之間。通常,大數字會提供更好的壓縮比和更慢的壓縮過程。
d = {} 尺寸並 [b | K | M]#
設定 BZip2 的字典大小。您必須以字節、千字節或兆字節為單位指定大小。字典大小的最大值是 900000b。如果未指定 set [b | k | m] 中的任何符號,則字典大小將計算為 DictionarySize = 2 ^ Size 字節。
mEM = {} 尺寸並 [b | K | M]#
設定用於 PPMd 的內存大小。您必須以字節、千字節或兆字節為單位指定大小。最大值為 256 MB = 2 ^ 28 字節。默認值為 24(16MB)。如果未指定集合 [b | k | m] 中的任何符號,則內存大小將計算為(2 ^ Size)字節。PPMd 使用相同數量的內存進行壓縮和解壓縮。
o = {} 尺寸#
設定 PPMd 的模型順序。大小必須在 [2,16] 範圍內。默認值為 8。
mt = [off | 在 |]#
設定多線程模式。如果您有多處理器或多核系統,則可以使用此開關提高速度。此選項僅影響壓縮(使用任何方法)和 BZip2 流的解壓縮。多線程模式中的每個線程使用 32 MB 的 RAM 進行緩衝。如果指定 {N},則 7-Zip 嘗試使用 N 個線程。