Windows
使用 Windows10-NFS-client 和 Linux-NFS-server 對文件名進行類 Unicode 編碼
問題
Windows10 Pro的NFS-Client預設掛載一個NFS-share
lang=ansi
。這會導致使用帶有變音符號或亞洲字元(例如漢字、平假名、片假名等)的文件名出現問題。有關我的設置的詳細資訊
伺服器是Debian GNU/Linux 10.6 (buster)。該伺服器支持 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
但它們中沒有一個對我有用。
有沒有可能的解決方案?
AFAIK,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 個字節。
IOW,NFS v3 不支持 unicode