给你看看我一个FTP服务器的编码:
$ whoami
root
$ echo $LANG
en_US.UTF-8
#这个表明系统默认UTF-8
$ ps auxw | grep vsftpd|grep -v grep
root 32449 0.0 0.0 4288 1020 ?SSep14 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
#查询到我的vsftpd的进程号 32449
$ cd /proc/32449/
$ ls
attr coredump_filter exe limitsmem root statm wchan
auxv cwd fd loginuid mounts smaps status
cmdline environ io maps mountstats stat task
$ cat environ
TERM=vt100PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/binPWD=/LANG=en_US.UTF-8SHLVL=1_=/usr/sbin/vsftpd
$
#看到environ文件的内容,其中的UTF-8表示我的vsftpd也采用utf-8编码,en_us表示语系
我的客户端用的有filezilla和flashfxp,默认都设成了以utf-8传输
如果你要用中文语系,最好也检查一下/usr/share/locale下面,比如:
$ ls /usr/share/locale/ | grep -i cn
zh_CN
zh_CN.GB2312
Windows 系统自带和第三方软件使用的编码不同就会导致这样。vsftp 不支持编码识别自动转换。所以两个客户端软件用的不同编码就会让 vsftp 的编码混乱。一般来说 Linux 现在都用 utf-8 一些新版本的 ftp 软件默认也会去转换为 utf-8 进行传输文件名,但 Windows 似乎旧版本还是用本地编码进行 IO。也就是简体中文用 GB 系列,繁体中文用 BIG ,英文用 ASCII 什么的互相不同的编码。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)