プロジェクトで SFTP を使用して、SSH 接続を介してファイルを転送します。これは、Java コードを介して行われます。?, ! のような文字の場合 sftp コマンドでエンコードされた値を指定する必要があるなど、コードでパスワードをエンコードし、コマンドを生成しました。しかし、SFTP は現在、これらのエンコードされたパスワードを処理しておらず、パスワードを直接受け入れます。何が問題になる可能性がありますか。助けてください。
ユーザー名の例: xyz パスワード: abc!
URLEncoder を使用して、ユーザー名とパスワードをエンコードします。
String username= URLEncoder.encode(username, "UTF-8"); 文字列 password = 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 を指定すると、機能します。
間違っている場合はお知らせください。
前もって感謝します。