在 Solaris 10 系统中使用自带的 Samba 3.0.4 版本时,配置文件默认存放在 /etc/sfw 路径下,Windows XP 客户端访问共享文件一切正常。然而,一旦通过 telnet 登录终端,查看文件时发现中文文件名全部显示为乱码,这给日常操作带来了不小麻烦。查阅 man 手册后发现,unix charset 默认采用 UTF-8 编码,与中文语言环境不兼容。要解决这个问题,只需在 smb.conf 配置文件的 [global] 段落中添加以下三行内容:
unix charset = GBK
dos charset = GBK
display charset = GBK
重启 Samba 服务后,乱码即可恢复正常,清晰显示中文文件名。这里有一个关键注意事项:不要使用 zh.GBK、zh_CN.GBK、zh.UTF-8 或 ASCII 等格式,这些写法经过验证均无法生效,必须准确填写 GBK 才能得到预期效果。
至于为什么 Solaris 9 系统中不会出现这个乱码问题?原因在于 Solaris 9 自带的 Samba 是 2.x 版本。旧版本在启动时,只要将 locale 环境变量设置为 zh.GBK,通常无需额外调整即可正常显示中文。尽管版本相对较低,但在这方面的兼容性反而更加省心。
