问题
NFS 客户端Windows10 专业版默认挂载 NFS 共享lang=ansi
。这会导致使用带有变音符号或亚洲字符(例如汉字、平假名、片假名等)的文件名出现问题。
有关我的设置的详细信息
服务器是Debian GNU/Linux 10.6(破解版). 该服务器支持 NFS 版本从 3 到 4.2 (2 被禁用):
$ sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
客户端是Windows10-Pro build 19041
。我不知道客户端使用哪个 NFS 协议版本。这些是挂载点的选项。
UID=-2, GID=-2
rsize=131072, wsize=131072
mount=soft, timeout=0.8
retry=1, locking=yes
fileaccess=755, lang=ANSI
casesensitive=no
s=sys
我知道其他选择为了lang=
。
euc-jp: Japanese
euc-tw: Chinese
euc-kr: Korean
shift-jis: Japanese
Big5: Chinese
Ksc5601: Korean
Gb2312-80: Simplified Chinese
Ansi: ANSI-encoded
但它们对我来说看起来都没用。
有什么可行的解决办法吗?
答案1
据我所知,Windows 支持 NFSv3,它使用 XDR细绳作为文件名的类型,仅限于 ASCII:
NFSv3 规范 https://www.rfc-editor.org/rfc/rfc1813#section-2.5
typedef 字符串文件名3<>;
https://www.rfc-editor.org/rfc/rfc1014#section-3.10
该标准定义了一个由 n 个(编号为 0 到 n-1)ASCII 字节组成的字符串,即将数字 n 编码为无符号整数(如上所述),后跟字符串的 n 个字节。
换句话说,NFS v3 不支持 unicode