我们在项目中使用 SFTP 通过 SSH 连接传输文件。这是通过java代码完成的。假设 if 对于像 ?, ! 这样的字符 等我们需要在 sftp 命令中给出编码值,我们在代码中编码密码并生成命令。但是 SFTP 现在不使用这些编码密码,它直接接受密码。可能是什么问题。请帮忙。
示例用户名:xyz 密码:abc!
我们使用 URLEncoder 对用户名和密码进行编码。
String username= URLEncoder.encode(username, "UTF-8"); 字符串密码 = URLEncoder.encode(password, "UTF-8");
编码后我们的代码将生成 SFTP 命令为:sftp://xyz:abc%21@10.9.10.9/home/documents/xyz.txt
但这不起作用,身份验证因密码错误而失败。如果我们手动发出命令 sftp://xyz:abc!@10.9.10.9/home/documents/xyz.txt 它可以工作。
如果我们出错了,请告诉我们。
提前致谢。