根本原因是windows与linux或不同windows设备间中文字符编码解析不一致,需统一系统语言设置:windows端需在区域设置中勾选中文(简体,中国)并禁用utf-8 beta选项后重启;linux挂载时须用iocharset=utf8(或gb18030)指定字符集。

局域网共享文件在另一台电脑打开时中文显示为方块、问号或一堆符号,根本原因是Windows与Linux或不同Windows设备间对中文字符的解读方式不一致,必须让双方系统语言设置达成底层协同。
Windows端统一非Unicode区域设置
第一步:按 Win+R 输入 intl.cpl 回车,直接打开“区域”控制面板。
第二步:切换到【管理】选项卡,点击【更改系统区域设置】。
第三步:勾选【中文(简体,中国)】,【务必取消勾选“Beta版:使用Unicode UTF-8提供全球语言支持”】——该选项会强制系统以UTF-8解释所有非Unicode程序,反而导致传统共享协议(如SMBv1/v2)传输的GBK编码文件名被错误解析。
第四步:重启电脑生效。这一步不可跳过,仅注销无效。
Linux挂载时强制指定字符集
方法一:umount已挂载点(若已挂载)
sudo umount ./windowshare
方法二:重新mount并显式声明iocharset
sudo mount -t cifs -o username='Administrator',password='yourpass',iocharset=utf8 //192.168.1.100/share ./windowshare
注意:iocharset=utf8 是关键参数,它告诉Linux内核“对方传来的文件名是UTF-8编码”,否则默认按ASCII或本地locale解码,必然乱码。如果Windows端实际用的是GBK(如老版本Win7),此处需改为 iocharset=gb18030。
Windows 11启用UTF-8兼容模式(可选增强)
仅当双方都为Win11 24H2及以上版本且明确需要全链路UTF-8时启用:
设置 → 时间和语言 → 语言&区域 → 管理语言设置 → 更改系统区域设置 → 勾选【Beta版:使用Unicode UTF-8提供全球语言支持】→ 重启。
⚠️ 此操作会影响所有旧版非Unicode程序(如部分财务软件、工业控制工具),启用前请确认业务软件兼容性。











