2010-07-12 46 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而设计的(作者是俄罗斯人),在我的经验中从未失败过。