Вместо этого вы можете использовать% 23.
Символ процента, за которым следует двухзначное шестнадцатеричное число, указывает, как символы экранируются в URL. 23 - шестнадцатеричное значение для символа хеш / фунт в таблице ASCII.
Вместо того, чтобы решать эту конкретную проблему, вы должны решить эту проблему, как правило, путем кодирования всех полей имени пользователя и пароля. Вы должны быть в состоянии сделать это с System.Web.HttpUtility.UrlEncode
(ссылка на сборку System.Web
):
string username = ...
string password = ...
string url = string.Format("ftp://{0}:{1}@ftp.example.com:21/fu/bar.zip", HttpUtility.UrlEncode(username),
HttpUtility.UrlEncode(password));