要下载FTP中的大文件,一般是转换成完整的下载地址(例如ftp://uername:password@ip:port/dirname/filename)来下载。但这样有时候会产生问题,如果password里面有特殊字符怎么办?
方法很简单,把特殊字符换成16进制的ASCII码即可。
假设现在有个FTP服务器192.168.1.1,用户名zhang3,密码是zhang!@#,我们要下载该服务器上/html/a.rar文件。
如果写成ftp://zhang3:zhang!@#@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'
Leave a Comment