我在我们托管的 Debian(11.3)服务器上遇到了一个问题,我通过 cifs 和 fstab 安装了一个 Windows 服务器共享,但是当我尝试访问或列出一些包含特殊字符(如““我收到一条错误消息,提示该文件夹不存在。以下是挂载参数:
auto,user=,pass=,vers=3.0,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm
我尝试更改为 cp850 和其他几个,但没有任何变化。以下是语言环境输出:
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
有趣的事实,如果我尝试在 ext4 分区上使用上面列出的特殊字符创建一个本地文件夹,它可以工作并且我可以列出它。
如果我能通过重命名文件夹来解决,我会这样做,但客户端 100% 会定期收到类似的其他文件夹。
在此先感谢任何提示或帮助,我进行了多次搜索,但没有找到解决方案
答案1
Windows 不使用 utf-8 作为文件名编码。因此,您无法从 linux 正确查看 windows 的非 ascii 文件夹和文件。您可以将 windows 的默认编码更改为 utf-8,但我不确定此选项是否适用于 Windows 2012R2。请参考此回答(intl.cpl
方法)。