共享文件 连接到服务器时出现问题,通过 SMB 在 macOS 使用 Finder 访问共享文件夹中的文件时,有时会出现错误代码 -43。这是什么原因导致的?...

本文探讨了因客户端和服务器使用不同Unicode范式(NFC与NFD)而导致的文件访问问题。详细介绍了如何利用convmv工具来转换文件名格式,从而解决由范式差异引发的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

no.981_01.png

在上面的屏幕截图中,Finder 尝试(通过 SMB)访问共享文件夹中的目录“1_ã”并创建子文件夹,这导致了错误。出现此问题的原因是字符“ã”使用范式 D (NFD) 进行编码,此范式是“标准分解”Unicode 范式。

然而,在客户端,Finder 使用范式 C (NFC) 发送请求,此范式是“标准分解”格式。因此,NAS 服务器无法识别目录名或查找目录,因此服务器报告错误。

这一差别也可能导致名称中包含 NFD 格式字母的文件夹中的文件不显示和不可编辑。在此类文件夹中执行重命名、创建或编辑文件等操作可能失败。

此错误是由服务器和客户端使用两个不同的 Unicode 范式而导致的。用户尝试通过 SMB 访问 NAS 服务器上的共享文件夹时,客户端会发送请求确认目录中有哪些文件。NAS 服务器收到请求时,会将目录中的所有文件名发送到客户端。文件名使用不同的 Unicode 范式(在本例中,服务器端为 NFD,客户端为 NFC)时,便会出现问题。将文件保存到 NAS 服务器时,如果客户端选择其他格式,便会出现这种情况。客户端收到文件名时,会要求服务器显示这些文件或请求在目录中创建一个新文件。请求的编码格式取决于客户端的设置。如果客户端请求的格式不同于服务器上使用的格式,服务器便无法找到文件或目录,然后报告错误。

但是,如果要将 NFD 格式的文件名转换为 NAS 上存储的文件的 NFC 格式,可以使用一项名为 convmv 的工具。请按下列步骤安装 convmv。

登录 NAS 并转到 App Center。

安装 Perl。

no.981_02.png

将文件保存到 NAS 上的目录。(例如,共享文件夹“Public”)

打开“Terminal”(终端)并建立 SSH 连接以登录到 NAS。

输入 convmv 所在文件夹的路径。

命令输入:Run: cd /share/Public

解压缩文件。

命令输入:Run: tar -xvf convmv-2.05.tar.gz

输入已解压文件所在的文件夹路径。

命令输入:Run: cd convmv-2.05

确保 convmv 为可执行程序。

命令输入:Run: chmod a+x convmv

修改 NAS 的 Perl shell 路径。

命令输入:Run: sed -i -e'1c\\#\!\/opt\/bin\/perl' convmv

转换文件名。

命令输入:Run: ./convmv -r --nfc --nosmart -f UTF-8 -t UTF-8 --notest

注意:

以上说明基于 x86_64 平台的 QTS 4.3.6 固件。使用先前的固件版本尝试这些步骤可能会产生不同的结果。例如,在第 10 步中 Perl shell 路径可能会有所不同,所以可能需要将其替换为正确的路径。

以上说明不适用于基于 ARM 的型号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值