我的系统是RHEL4.0,Samba和Vsftp服务都是光盘自带的版本,安装RHEL时选择了中文语言包。 昨天调试了一下vsftp服务,我通过Samba共享了ftp目录,创建中文的目录,并复制一些带有中文名称的文件名到ftp的目录,结果发现通[url]ftp://localhost[/url]访问出现乱码,后来找了些文章,终于找到解决方案。

 

原来我的系统默认的语言编码是en_US.UTF-8,由于windows通过网上邻居访问samba共享的目录采用的编码是GB2312,但是samba默认采用操作系统的编码,所以出现了这个问题。
1. /etc/sysconfig/i18n 修改LANG环境变量
LANG="en_US"
#SUPPORTED="en_US.UTF-8:en_US:en"
SUPPORTED=zh_CN.GB2312:zh_CN:zh:zh_TW.Big5:zh_TW:zh:en_US:en
SYSFONT="latarcyrheb-sun16"
2. 修改/etc/samba/smb.conf
在Global增加3行,显示字符编码,DOS字符编码,Unix字符编码均为cp936
[global]
display charset = cp936
dos charset = cp936
unix charset = cp936
3. 重新启动samba服务
service smb restart
修改后,原来在Windows通过网络邻居访问可以看到的中文目录现在却变成乱码了。只要把乱码的目录名称或者文件名重新修改为中文即可,新增加的目录或文件就不会乱码了。