我有一个使用samba 4.1.12的unix服务器(arch linux)。 共享文件里面有utf-8 nfc编码(标准的utf-8)。
当我将这个samba共享挂载到一个osx客户端(10.9.5)时,在osx客户端上显示具有特殊名称的File with "quotes"例如File with "quotes"被损坏( C7XSWH~V )。
当我在共享内的osx客户端上创build一个带有特殊字符的文件时,它会在osx中正确显示,但是在unix服务器上显示时会显示一个奇怪的符号,例如File with quotes 。
我认为这是因为osx预计文件名是utf-8格式,但是文件是服务器为utf-8 nf c 。
基本上我想有一个工作的桑巴共享来自osx和unix客户端的用户可以访问和存储文件,文件名中的特殊字符应该被允许。 有没有办法做到这个跨平台?
我怎么能告诉osx简单地使用utf-8 nfc编码samba共享? 有没有办法做到这一点?
我已经尝试了在unix服务器上明确地设置smb.conf中的编码,没有运气:
unix charset = utf-8 dos charset = utf-8 # --> error in log: # invalid DOS charset: 'dos charset' must not be UTF8, using (default value) CP850 instead # or dos charset = utf-8-mac # --> error in log: # dos charset 'utf-8-mac' unavailable - using ASCII
这是samba客户端中的一个缺失function。 在samba 4.2中有vfs_fruit模块来克服这个限制 – 有关更多详细信息,请参阅邮件列表主题https://lists.samba.org/archive/samba/2014-December/187545.html 。
有了vfs_fruit模块,你可以做到:
vfs objects = catia fruit streams_xattr fruit:encoding = native
而且samba透明地映射了osx客户端的文件名(即使文件以空格结束,它仍然有一些问题)。
你有没有尝试在smb.confjoinmangled names = no ?