是否有任何方式配置NFSClient,或者如何在Windows或Linux上挂载共享,以便我能够跨系统保留文件名?
目前,我们有大量在Windows上编写的文件,现在已经转移到(NFSv3),以便可以从其他服务器访问它们。问题是,许多文件的名称中都有瑞典字符,当这些文件被列在创建它们的相反的系统中时,文件名就变得不可读(文件内容没有问题,只有名称)。
目前,我计划以编程方式重命名所有文件以删除违规字符,但如果可能的话,我希望不必这样做。
下面是一个从Windows和Linux的角度看它的例子。Linux上创建的Linux文件和windows上创建的Windows文件。
Linux

视窗

发布于 2019-12-15 02:43:14
这个答案可能帮不了你解决问题,但我想我会给出一些理论概述,这可能有助于你(和其他人)的研究。
您也可能希望阅读这。
不管怎么说,我们来吧:
这里有很多地方在玩。
文件系统
在Linux上,文件名只有两个规则:它们不能包含斜杠(/),也不能包含空字节(\0)。ASCII和UTF-8与此规则兼容,这基本上是linux文件系统支持的编码。
Windows 可能有不同的想法。可能需要一些配置才能让windows文件系统以不同的编码方式发出字符。
创建和列出文件
在Linux上,您的文件名是几乎总是以UTF-8编码。。然后,ls和kin通常不会考虑太多,只是假设文件系统需要上面的规则。
Windows‘dir显然知道如何使用NTFS的字符编码,但是它能读取Linux的UTF-8文件名吗?据我所知,它支持有一定的配置。
终端
现代Linux终端程序都是UTF-8,但可能需要安装其他字符集(因为Windows)。
在Windows上,它似乎有去年还没有得到充分的支持。也许这已经改变了,或者你需要另一个终端。以上配置可能会有所帮助。
NFS
NFSv4.1和更高版本对UTF-8有明确的支持,并且有一个明确的Unix <-> Windows互操作性目标。
NFSv3没有任何这样的功能,对任何非ASCII的支持都是无保证。
我发现一项执行在NFSv3上支持UTF-8,但是Google的文档只有他说“支持任何与NFSv3 3兼容的客户端”。
做些什么
继续重命名这些文件。互操作性还有更多的问题,例如对保留了哪些字符?的不同概念,有很多限制,所以最好的办法是确保所有文件名都是简单的、普通的ASCII,而且我甚至会避免像文件名中的空格之类的东西,这会使生活变得简单得多。
https://stackoverflow.com/questions/59281343
复制相似问题