我正在使用php ZipArchive類來生成zip存檔。我使用addFile方法的第二個參數來設置檔案中文件的名稱(因爲磁盤上的實際文件具有不同的名稱)。某些名稱必須包含法語口音(如é)。當我下載存檔時,重音未正確顯示在文件名中。我應該使用什麼編碼作爲文件名? (應用程序使用UTF-8)ZipArchive使用什麼編碼在創建的存檔中存儲文件名?
6
A
回答
2
Zip文件沒有指定的編碼;歸檔工具必須猜測(或假定)使用的編碼。先嚐試CP1252,然後從那裏開始。
+1
不起作用。我已經嘗試過ISO-8859-1,CP1252和CP850沒有成功 – matei 2011-02-15 15:27:06
+0
文件名的字節順序是什麼樣的,它應該是什麼文本? – 2011-02-15 15:31:20
4
使用DOS編碼。我的文件名具有西里爾文字符,所以我將文件名從cp1251
(Windows)編碼爲cp866
(DOS),並將文件名傳遞給$zip->addFile()
。
9
這是php錯誤#53948,見official bug report。
建議的解決方法(爲我工作):
$zip->addFile($file, iconv("UTF-8", "CP852", $local_name));
相關問題
- 1. 創建使用Go的存檔Unicode文件名zip存檔/ ZIP
- 2. ZipArchive以外的庫用於在PHP中創建pkzip存檔?
- 3. 如何用存檔文件名中的當前日期創建RAR存檔?
- 4. 爲什麼隨機存儲雲存儲/ CDN的文件名?
- 5. 如何使用DocFx創建代碼文檔的可搜索中央存儲庫
- 6. ZipArchive創建文件,但ZipArchive :: close()無法重命名
- 7. 創建存根以編輯office文檔
- 8. '文檔數據存儲'和'鍵值數據存儲'是什麼?
- 9. 將ZipArchive保存到文件
- 10. 使用Textfile中的文件創建7-Zip存檔 - Powershell
- 11. 在Android中創建和存儲密碼
- 12. 如何使用PyGithub在存儲庫中創建文件?
- 13. 如何使用PHP在S3存儲桶中創建文件夾
- 14. 使用JavaScript創建.json文件並在其中存儲數據?
- 15. 在內存中創建pdf文檔
- 16. 在內存中創建文檔?
- 17. 使用Swift for iOS以編程方式創建和存儲PDF文檔
- 18. PHP ZipArchive文件名中使用
- 19. 在Netbeans中創建和存儲XML文檔7
- 20. 使用jsp編碼創建一個xml文件並存儲在本地磁盤文件夾中
- 21. 創建存儲庫,在模型關係中引用什麼?
- 22. mysql創建存儲過程。我的代碼有什麼問題?
- 23. 什麼編碼用於使用C#創建MS-DOS txt文件(UTF8Encoding與編碼)
- 24. 文檔管理系統:作爲存儲後端(文檔內容存儲庫)使用什麼?
- 25. 什麼是存儲軟件文檔的最佳方式?
- 26. 如何使用Maven插件創建存檔文件
- 27. 使用base64編碼內容從XML創建ZipArchive
- 28. 使用Git創建已更改文件的存檔
- 29. 爲什麼codeigniter使用名稱控制器+函數創建緩存文件?
- 30. 創建時存儲在新對象中的值是什麼?
郵編是一個很老的格式,並早於Unicode的。較早的2007年版本的格式很可能只是使用標準的擴展ascii。 '07之後,新規範允許使用UTF-8。檢查您生成的文件版本。 – 2011-02-15 16:20:54