2011-08-23 68 views
1

据我所知,类Unix系统使用UTF-8编码文件名,而Windows系统使用自己的Windows单字节编码。用于更正Windows上的Linux文件名的脚本,反之亦然?

我与他们在日本颇有名档案oftenly工作。当我打开在Windows中创建的这种归档文件时,日文字母已死,因为文件名编码不正确。

同样的事情发生,当我创建我的Linux文件,然后有人打开它在Windows下。

所以,我认为这应该是很常见的问题,因为文件名是可恢复的存在必须已经存在修正为Linux和.bat脚本为Windows .SH脚本。

但是google搜索相当长的一段时间,我还没有发现任何东西之后。 有没有这样的脚本?如果不是,有什么困难可能阻止人们创造它们?

更新 我很高兴能用于大多数Linux系统和大多数Windows系统的解决方案。

+2

问题空间是相当多的比这更复杂。有多个Linux文件系统,其中一些允许操作员指定一个本地文件名字符集,以及多个Windows文件系统,它们具有来自Redmond的各种或多或少古怪的反模式(他们喜欢称之为“功能”)。归档容器应该有一种方法来指定文件名的编码系统,但是你并没有说明你正在使用哪种归档。你在谈论'zip'文件吗? – tripleee

+0

我对zip和rar文件都有同样的问题。 – Nameless

+0

从可执行文件而不是从脚本执行此操作可能会更容易。如果归档工具实际上保留了文件名信息(这可能不是这种情况!),这应该不会很困难。我不确定的唯一其他事情是编码是否可预测,或者代码或用户是否必须尝试在每种情况下找出合适的编码。 –

回答

0

谢谢您的输入。对于简单的bash脚本,case确实看起来相当复杂,我需要使用编程语言。

我没有看到像“关闭问题”按钮任何东西,所以我就用这个答案这样做。

0

Windows使用两个字节编码UTF-16。您的问题很可能是您正在使用您使用的任何归档工具的单字节ANSI版本。

直到你给的代码和工具使用的是很难给出具体建议的更多细节。但是,在现代Windows文件系统中使用全系列的Unicode字符没有限制。

+0

在Windows上的winrar,在Linux上的gnome文件滚轮 – Nameless

+0

这似乎是一个超级用户问题,我不认为有任何代码在那里? –

+0

我想让.sh和.bat脚本在解包后修复名称,或者从某些向导开始编写它们。但是每个人都开始质疑我使用的是什么软件。 – Nameless

相关问题