日期:2014-05-17  浏览次数:21313 次

Windows下samba中文乱码解决方案
[转]Windows下samba中文乱码解决方案!

用windows访问Linux下的samba服务器,在访问有汉字的文件夹的时候,看到里面的中文文件名都是乱码。解决办法: (1) 打开/etc/sysconfig/i18n 设置为: LANG="zh_CN.GB2312" LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN" SUPPORTED="zh_CN.GB18030:zh_CN.GB2312:zh_CN. ...
用windows访问Linux下的samba服务器,在访问有汉字的文件夹的时候,看到里面的中文文件名都是乱码。
解决办法:
(1) 打开/etc/sysconfig/i18n
设置为:
LANG="zh_CN.GB2312"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN.GB2312:zh_CN.UTF-8:zh:en_US.UTF-8:en_US:en:ja_JP.UTF-8:ja_JP:ja"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"
    其中LANG="zh_CN.GB2312" 是必须的(如果你不想让中文乱码的话!!!),其它的可以按照自已的需求来改变。
(2) 打开smb.conf
添加:
    display charset = cp936
    unix charset = cp936
    dos  charset = cp936
重新启动系统即可。

注释:主要还要看Linux服务器用什么locale,比如我用utf8的,smb.conf里那些全都得改成utf8,而不是cp936。





  环境:redhat as 3 up 3

  vi /etc/samba/smb.conf

  根据locales的设置,修改该文件:

  1. 如果locale是zh_CN.UTF-8,做如下设置:

  display charset = UTF-8

  unix charset = UTF-8

  dos charset = UTF-8

  2. 如果locale是zh_CN.GBK或zh_CN.gb2312,做如下设置:

  display charset = cp936

  unix charset = cp936

  dos charset = cp936

  重启samba:

  service samba restart

  则无论从windows的网上邻居,还是直接用securecrt登陆,均可显示正常中文。



问题:ftp上传上去的文件、文件夹(中文名),在samba里显示乱码;
samba上传上去的文件、文件夹(中文名),在ftp里显示乱码;


解决方法:

1、/etc/sysconfig/i18n: LANG="zh_CN.gb2312"
SYSFONT="latarcyrheb-sun16"

2、/etc/samba/smb.conf中添加:
display charset = cp936
unix charset = cp936
dos  charset = cp936






如果locale是zh_CN.UTF-8,做如下设置:
  display charset = UTF-8
  unix charset = UTF-8
  dos charset = UTF-8
如果locale是zh_CN.GBK或zh_CN.gb2312,做如下设置:
  display charset = cp936
  unix charset = cp936
  dos charset = cp936

samba中文问题:
       从windows看samba服务器,中文为乱码,另外拷贝中文文件名的文件或者到samba服务器,文件名或者目录名为乱码。解决办法是修改/etc/samba/smb.conf文件,添加以下2行:
dos charset = cp936
unix charset = gb2312
Samba和Vsftp中文乱码解决方案

我的系统是RHEL4.0,Samba和Vsftp服务都是光盘自带的版本,安装RHEL时选择了中文语言包。 昨天调试了一下vsftp服务,我通过Samba共享了ftp目录,创建中文的目录,并复制一些带有中文名称的文件名到ftp的目录,结果发现通ftp://localhost访问出现乱码,后来找了些文章,终于找到解决方案。
原来我的系统默认的语言编码是en_US.UTF-8,由于windows通过网上邻居访问samba共享的目录采用的编码是GB2312,但是samba默认采用操作系统的编码,所以出现了这个问题。
1. /etc/sysconfig/i18n 修改LANG环境变量
LANG="zh_CN.GB2312"
SUPPORTED="zh_HK.UTF-8:zh_HK:zh:zh_CN.UTF-8:zh_CN:zh:zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8: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通过网络邻居访问可以看到的中文目录现在却变成乱码了。只要把乱码的目录名称或者文件名重新修改为中文即可,新增加的目录或文件就不会乱码了。