无法通过 NFS 挂载读取 Unicode 字符?

无法通过 NFS 挂载读取 Unicode 字符?

当我尝试通过 Mac OSX 上的 NFS 播放包含 Unicode 字符(重音符号)的 MP3 时遇到了这个奇怪的问题,通过 AFP 播放一切都很好,但我设置了 NFS,因为另一端是 Linux 服务器。

这是我的磁盘实用程序设置:

*nfs://192.168.1.112/Music*

高级挂载参数:

*-P , nolocks nosuid*

奇怪的是,我可以在 Finder 中看到这些文件(带有重音符号 ..),但我无法播放它们!所以我想知道这是否是 Unicode 问题,因为我可以正确查看文件,或者是权限问题,因为我无法播放它们,但是我不能只播放包含重音符号的文件,这说不通。

谢谢

答案1

在您的 nfs 挂载中使用 nfc 选项:

nfc 将名称字符串发送到 NFS 服务器时将其转换为 Unicode 范式 C (NFC)。此选项可用于提高与通常使用 NFC 格式名称的 NFS 客户端和服务器的互操作性。

MOUNT_NFS(8)

原因:

Unicode 是一个复杂的标准。它的要素之一是编码。编码有好几种。Linux 使用预组合的 UTF8,而 OS X 使用分解的 UTF8,这导致例如字形“ä”在 Linux 和 OS X 上被编码为不同的字节串。

来源:https://discussions.apple.com/message/12045309#12045309

我的工作站中的自动挂载条目示例:

iss:~ root# cat /etc/auto_nfs
3TB    -fstype=nfs,resvport,nfc,vers=4,soft,intr,rsize=32768,wsize=32768,noatime,retrans=3,proto=tcp nas.local:/nas/3TB

相关内容