文件服务器字符集编码问题

5713阅读 0评论2011-07-13 lzq467826892
分类:LINUX

一.当前环境:

操作系统:RHEL5.2  32bit 
内核版本:2.6.18-92.el5

二.服务类型:samba+vsftp+nginx

samba服务作为windows系统与linux系统文件共享的主要途径,主要用于大文件的上传服务器
vsftp服务作为某个部门内的文件存储,主要是小文件,上传方便,安全性高
nginx服务作为web服务,用于文件的共享下载,支持迅雷下载,支持用户安全控制访问

三.各个文件系统与操作系统的字符集:

操作系统字符集:# cat /etc/sysconfig/i18n   GBK支持中文
LANG="zh_CN.GBK"
LANGUAGE="zh_CN.GBK:zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"

samba字符集: 默认为连接服务器的操作系统自带字符集,比如windows为utf-8;可以在服务器上设定
vsftp字符集: 默认为GBK,无法改变
nginx字符集: 可以修改某个目录要显示的字符集

四.为保证各个文件系统字符集统一,设定服务器

1.操作系统无需改变
2.设定samba服务器
  # vim /etc/samba/smb.conf
     在[global]下面添加
unix charset = cp936 
cp936就是指系统里第936号编码格式,也就是GBK。指连接samba服务器的客户端采用编码为GB2312
CP936是GBK,GB2312是GBK的真子集。
     在WIndows的控制面板,选区域与语言选项->高级,Code Page里面就有
936对应GBK。
3.vsftpd无需改变
4.设定nginx
   # vim /usr/local/nginx/conf/nginx.conf
   location /service/ {
            charset   GB2312;  ###support vsftpd 
            root   /file_server/targtime/;
            index  index.html index.htm;
            auth_basic "Targtime-Service-Center-Department";
            auth_basic_user_file /usr/local/nginx/conf/htpasswd.conf;
        }

========================
如果只有nginx与samba,并且samba服务器上没有添加unix charset = cp936 选项,则nginx的显示编码为charset utf-8;
但是在服务器命令中显示的是乱码。

上一篇:iptables 基本命令
下一篇:php生成日历表