是否可以通过任何方式配置NFSClient或如何在Windows或Linux上安装共享,以便可以在系统之间保留文件名?
[目前,我们有大量文件是在Windows上编写的,现在已移至Google Filestore(NFSv3),以便可以从其他服务器进行访问。问题在于,许多文件的名称中都有瑞典语字符(ÅÄÖ),并且在与它们相对的系统中列出这些文件时,文件名变得不可读(文件内容没有问题,只是文件名名称)
目前,我正计划以编程方式重命名所有文件以删除有问题的字符,但如果可能的话,希望不必这样做。
下面是在Windows和Linux方面的外观示例。在Linux上创建Linux文件,在Windows上创建Windows。
Linux
Windows
此答案可能无法帮助您解决问题,但我想我会提供一些理论上的概述,以帮助您(和其他人)进行研究。
您可能还想阅读this。
无论如何,我们去:
这里有很多活动。
在Linux上,文件名只有2条规则:它们不能包含斜杠(/
),并且不能包含空字节(\0
)。 ASCII和UTF-8与此规则兼容,它们基本上是linux文件系统支持的编码。
Windows might have different ideas。可能需要一些配置才能使Windows文件系统发出不同编码的字符。
在Linux上,您的文件名为almost always encoded in UTF-8。然后,ls
和亲戚通常不会考虑太多,只是假设文件系统需要上述规则。
Windows'dir
显然知道如何使用NTFS的字符编码,但是它可以读取Linux的UTF-8文件名吗?据我所知,它支持with some configuration。
现代Linux终端程序都是UTF-8,但是可能需要安装对其他字符集的支持(因为Windows)。
在Windows上,似乎有not been fully supported as of last year。也许已经更改,或者您需要另一个终端。上面的配置可能会有所帮助。
NFSv4.1及更高版本具有对UTF-8的明确支持,以及Unix Windows互操作性的明确目标。
NFSv3没有任何一个,并且对任何非ASCII的支持都是not guaranteed。
[我发现one implementation在NFSv3上支持UTF-8,但是仅Google Filestore的文档says“支持任何NFSv3兼容的客户端”。
继续并重命名文件。互操作性还有更多问题,例如what characters are reserved的概念不同,有很多限制,最好的选择是确保所有文件名都是简单的纯ASCII码,我什至避免使用文件名中的空格之类的东西,这使工作变得更加轻松。 >