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