您的位置:首页 > 编程语言 > PHP开发

ftp乱码的问题的解决思路与策略

2010-01-15 11:29 183 查看
我想做开发的,特别是对于那些做协议开发的、而且产品慢慢的由海外拓展到国内的开发人员来多,碰到中文乱码的机会就很大了。
写下这篇文章是因为在工作中碰到因为给ftp服务器上传带中文的文件名或文件加名的时候出现乱码的问题.现在将解决这个问题的思路理一理。
刚开始的时候碰到乱码问题不知道是什么编码,通过跟踪代码发现在客户端的编码方式是gb2312的,而我们搭设的ftp服务器(serv-u)中默认的设置就已经是utf-8的编码,难怪会出现乱码的问题,如下图.

图1.服务器限制与设置---〉ftp设置-----〉高级选项
对于大多数的ftp服务器现在基本都能够支持utf-8的编码方式了,至于原来就有的8859-1,asicc等编码方式当然还是支持的.支持utf-8的服务器默认设置下都是采用utf-8的编码方式来对收发的文件和文件夹进行编解码的。为了能减少客户的设置、为了能够兼容尽可能多的ftp服务器,我们决定:使用utf-8的编码对可能存在中文的且需要的和ftp服务器通信进行那部分字节序转化成utf-8的。
客户端是windows下的程序,使很容易从gb2312转到utf-8的,而ftp服务器怎样才能让它能够把中文解析出来?这个时候问题就比较明确了,通过网络知道了rfc2389定义了ftp协议的opts命令的使用,可以用来对ftp服务器发送命令使能某种编码方式。
这是”opts utf8 on”命令发送的可能返回值:
opts-good = "200" SP response-message CRLF
opts-bad = "451" SP response-message CRLF /
"501" SP response-message CRLF
这样问题也就可以很快地解决了。
其实假如没有客户端的话,需要我们在板子(设备)端进行转换的话可以看我的另外一篇文章.《gb2312转utf8》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: