用mount.smbfs
mount.smbfs
但文件名显示总是乱码:????(无效的unicode)
我的操作系统是RHEL
用local查:
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_M
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
我用smbclient连接一切正常.
网上查遍了方法,改codepage和iocharset参数(改成什么cp850,gb2312,等等),和修改smb.conf文件加入
等等.故障依旧.
经多方查找原因,并反复试验,总结经验如下:
1。mount.smbfs命令中的codepage和iocharset参数毫无意义,除非服务端不是中文环境需要手工指定。我们这时不要再被其它网贴误导(我就是因为这个原因荒废了一天的工夫!)
2。修改/etc/sysconfig/i18n文件如下:
LANG="zh_CN.GB18030"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030"
SYSFONT="latarcyrheb-sun16"
重启系统后,用mount.smbfs挂载windows共享,终于正常显示中文。但用smbclient连接,显示乱码。
3。修改/etc/samba/smb.conf文件如下:
[global]
这时只需重启smb服务,用smbclient连接windows共享已正常显示中文。
经验提示:
使用mount.smbfs可以在linux环境中直接使用windows的共享文件夹,如同访问linux下的目录或分区一样。我们打开windows里的文本文件字体都显示正常,只是文件名在linux下显示乱码,说明挂载是正确的。不正确的应该是GNOME的本地环境的编码与windows服务端编码不一致引起。因此,这时应该修改本地环境编码格式,统一为gb18030。
这时,我们使用locale命令,可以看到本地环境编码已更改:
[root@****
LANG=zh_CN.GB18030
LC_CTYPE="zh_CN.GB18030"
LC_NUMERIC="zh_CN.GB18030"
LC_TIME="zh_CN.GB18030"
LC_COLLATE="zh_CN.GB18030"
LC_M
LC_MESSAGES="zh_CN.GB18030"
LC_PAPER="zh_CN.GB18030"
LC_NAME="zh_CN.GB18030"
LC_ADDRESS="zh_CN.GB18030"
LC_TELEPHONE="zh_CN.GB18030"
LC_MEASUREMENT="zh_CN.GB18030"
LC_IDENTIFICATION="zh_CN.GB18030"
LC_ALL=
而使用smbclient连接时,该命令是UNIX环境下指令,这时只用修改smb环境的指令编码与locale一致即可。
其它异构环境,包括使用NFS文件系统如果发生类似问题,也可以循此思路解决。