2010-07-12 41 views
4

我很努力地將一個項目交付給客戶。工作是將文件打包到檔案中;簡單,對吧?那麼,這些文件的名稱中有(並且必須)有法文字符。我正在從Linux命令行進行存檔,她在Windows上從桌面打開。以法國名字爲特色的文件解包檔案

起初,我試過'拉鍊',但它沒有奏效。字符支持似乎根據我在StackOverflow上閱讀的內容的實現而有所不同。解壓縮時,生成的文件對我來說(Ubuntu Archive Manager)或她(WinZip,Windows)並不合適。

我們接下來嘗試了焦油。最後,對我來說,事情似乎很正常,但對客戶端來說還是不好(嘗試Windows的PeaZip和7zip)。

進入這個,我真的沒有想到這是一個問題。說法語的電腦用戶必須歸檔東西,他們使用什麼?

任何與此有關的見解或協助將不勝感激。謝謝!

+0

這是屬於更多的超級用戶或在這裏?我不太確定... – 2010-07-12 18:07:20

回答

2

嘗試使用允許您指定字符編碼(比如說UTF-8)的歸檔程序,或者找出如何使用您所擁有的程序進行編碼。這個論壇主題可能會對你有所幫助,因爲它與你所要求的相似,儘管與德文相反,而不是法語:http://sourceforge.net/projects/sevenzip/forums/forum/45797/topic/3710172

+0

那個線程提到了p7zip,我不知道它存在。使用7z似乎是勝利者。它完美地處理了這些角色。 – bibby 2010-07-12 19:24:15

+0

我經常使用非英語系統的檔案(不是爲了工作,而是爲了我自己的興趣),所以我知道惱人的文件名是多麼的令人討厭。樂意效勞。 – JAB 2010-07-12 20:13:58

6

ZIP傳統上使用IBM437編碼對文件名進行編碼。但據我所知,許多工具(錯誤地)傾向於在系統上使用默認編碼,這可能會導致在這種情況下出現問題,因爲兩端可能使用不同的編碼。

理論上ZIP現在還支持UTF-8,它應該可以解決這些問題,但是工具支持也會成爲問題。例如,據我所知,Windows資源管理器的ZIP支持將無法處理UTF-8編碼的文件名。

所以我們最終得出結論:兩端必須同意用於文件名的編碼,並且您將需要支持所有字符的編碼(任何Unicode編碼都可以,我不確定IBM437雖然)。 ZIP有很長的路要走,因此有很多工具傾向於不同意編碼。如果可能,請明確指定要使用的編碼並更喜歡Unicode。在與任意工具的兼容性方面,您可能會更好,使用以Unicode爲設計思路的更新格式。

根據更改日誌,7-Zip支持它自4.58測試版,但只有當本地代碼頁不支持所需字符時纔會使用它。使用-mcu命令行開關將使用UTF-8除ASCII外的任何內容。本地編碼通常僅在非ASCII字符範圍上有所不同,所以這很可能會起作用。也就是說,如果用於解包的工具也支持UTF-8(對於ZIP,這比ZIP更可能用於7-ZIP,因爲它不像ZIP那麼古老,並且有更少的拆包工具)。

WinRAR也許值得一試。

+0

+1關於Windows資源管理器zip功能不支持utf8的位。我可以確認在Windows 7上。很高興MS! – LOAS 2012-09-05 09:09:17

+0

另請注意,在命令行中使用'unzip'的方式與使用KDE的Ark無法提取的重音字符相同。 – ChrisR 2014-12-31 18:11:53

0

或者...您可以將重音字符加入。如果說法語者是文件傳輸的接收方,他們可能會或可能不會同情(詢問您的用戶!)。

法國人沒有那麼多口音擔心,真的。你有[ae] -grave,e-aigue,[aeiou] -circumflex和c-cedilla擔心,資本和更低(儘管除非有人碰到大寫鎖定鍵,否則更可能出現這種情況)

焦油有一個--transform選項。如果你創建一個sed模式來將每個iso-latin-1重音的aeiou和c字符轉換爲不重疊的版本,那麼你可能會沒事的。

+0

是的,客戶端拒絕了。謝謝,雖然。 – bibby 2010-07-12 18:48:29

+0

確保您在目標系統上具有最新版本的Zip。一般較新的檔案應用程序增加了處理像I18n和其他更深奧的問題的功能。更高版本的UTF-8支持完全有可能。 – Jason 2010-07-21 19:55:24

0

我認爲你應該以7z格式進行壓縮。 在Linux下,可以使用PeaZip完成,或者通過安裝p7zip並通過像Ark或Filereoller這樣的用戶界面來完成,具體取決於您的桌面(我更喜歡PeaZip因爲它可以在任何桌面上使用)。 7z格式是基於UTF8而設計的(作者是俄羅斯人),在我的經驗中從未失敗過。