ftp开发相关的防火墙和中文乱码问题

1. 两台linux服务器之间ftp无法上传文件

原因:ftp连接实际上包括两条链路,一条命令链路,一条数据链路,数据链路的建立有两种模式,主动模式(PORT)和被动模式(passive),实际上区别就是数据链路是由哪一方主动发起来建立。

如果采用主动模式,那么实际上需要从服务端到ftp客户端主动发一个tcp连接,如果ftp客户端是linux系统,那么需要注意防火墙的设置。

 

2. ftp文件上传时中文文件名乱码

原因:客户端普遍使用windows平台,那么文件在客户端是GBK编码。如果linux服务器也是GBK或gb2312编码,此时没有问题。但如果linux当前LANG是utf8,则看到的为乱码。

从文件系统存储的形式看,文件名的编码格式是与客户端上传文件时采用的编码相关的,即如果采用gbk上传文件,那么linux文件系统中文件名的编码就是gbk,反正如果采用utf8格式上传文件,那么linux文件系统中文件名的编码就是utf8,ftp服务程序并不会对上传的文件名称进行编码转换

所谓的乱码问题,其实取决于你在什么样的语言环境中来查看该文件,如果使用正确的语言环境,其实就没所谓乱码问题了。

 

所以对于此问题的理解是非常简单的,客户端与服务端要想避免乱码问题,那么必须清楚自己与对方的语言环境,如果语言环境不一致,那么或者客户端使用服务端所使用的字符集上传文件(进行编码转换,常用的ftp客户端工具都有相关的选项,比如winscp可以设定文件名使用utf编码进行上传),或者服务端使用的查看程序进行相应的编码转换之后再处理(比如java程序先进行编码转换后,再从文件系统中进行读取)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值