FreeBSD 挂载samba目录中文乱码问题解决
FreeBSD 挂载samba目录中文乱码问题解决

FreeBSD 挂载samba目录中文乱码问题解决

FreeBSD 挂载samba目录中文乱码问题解决 – 值3小时的折腾

0.先上结果,再讲过程

正常展示中文

mount_smbfs正常挂载共享目录时,如果全是英文,没有任何问题,一旦有中文字符,就会出现乱码,就像下边这样

乱码

1. 搜索得到的无效解决方案

尝试过 各种AI的解决方案,加-W UTF-8 参数,实际并未效果, 也试过iocharset=utf8等参数,依旧乱码。也试过各种AI给出的临时解决方案

ls /music|iconv  -f GBK -t UTF-8

或者

ls /music|iconv -f GB18030 -t UTF8

查看是正常的,但如果要进入对应的目录,依旧很不方便

AI及广大网友也不一定是靠谱的,还得想办法解决

2. 是不是samba服务端的配置问题

  • 服务端配置文件 /etc/samba/smb.conf

2.1 smb协议版本兼容么?

[global]
server min protocol = NT1

2.2 是服务端编码问题么

[global]
unix charset = UTF-8
display charset = UTF-8
dos charset = CP936

如何验证呢,直接在Mac 电脑的 Finder上连接samba查看,文件名都显示正常,没乱码, 说明服务端配置没问题

3. 回归mount_smbfs配置

3.1 看看mount_smbfs -h

mount_smbfs -h
usage: mount_smbfs [-E cs1:cs2] [-I host] [-L locale] [-M crights:srights]
                   [-N] [-O cowner:cgroup/sowner:sgroup] [-R retrycount]
                   [-T timeout] [-W workgroup] [-c case] [-d mode] [-f mode]
                   [-g gid] [-n opt] [-u uid] [-U username] //user@server/share node

再查查-d-f-E参数,终于在 -E上找到了答案

3.2 强大且详细的man工具

通过查看man详细说明, 终于找到了和乱码强关联的参数 -E, 指定服务端和客户端字符集转换关系

详细解释

然后,然后, 然后它就成功了

4. 折腾

  • 中间还尝试过 fusefs-smbnetfs, 单用户解决方案,通过crontab 的@reboot 指令执行shell命令完成,不是最终方案
  • 中间尝试过ls后通过iconv重命名文件名, 依旧失败(实际原始文件名并无问题),也是个无用功

author: mooring
date: 08/09/2025
site: https://codernote.club/?p=312