FTP下载地址中特殊符号的转换

要下载FTP中的大文件,一般是转换成完整的下载地址(例如ftp://uername:[email protected]:port/dirname/filename)来下载。但这样有时候会产生问题,如果password里面有特殊字符怎么办?

方法很简单,把特殊字符换成16进制的ASCII码即可。

假设现在有个FTP服务器192.168.1.1,用户名zhang3,密码是[email protected]#,我们要下载该服务器上/html/a.rar文件。

如果写成ftp://zhang3:[email protected]#@192.168.1.1:21/html/a.rar的格式,肯定会报错。

那么我们可以写成ftp://zhang3:zhang%21%40%[email protected]:21/html/a.rar,这样就可以利用wget之类的工具来下载了。

附上一些常见十六进制的ASCII编码:

ASCII字符	字符中文名	编码后的值
空格              空格             %20
!                感叹号            %21
#                 井号             %23
&                 and              %26
@                 at               %40
/                 斜杠             %2F
:                 冒号             %3A
=                等于号            %3D
?                 问号             %3F
~                波浪号            %7E

================================================
2015.06.28补充:
其实在Linux上使用wget下载FTP上的文件时,也可以使用如下命令来下载(同样允许password里有特殊字符)

wget ftp://ip/filename.zip -e login=username -e passwd='password'

发表评论

电子邮件地址不会被公开。