Подтвердить что ты не робот

Url Encode Periods?

Мне нужно, чтобы URL-адрес закодировал несколько периодов, так как мне нужно пройти некоторый путь к документу, и это похоже на

http://example.com/test.aspx?document=test.docx

Так что test.docx вызывает у меня ошибку незаконного символа. Поэтому мне нужно изменить его на

.  -->  %2E

Я попытался использовать Server.UrlEncode

  string b = Server.UrlEncode("http://example.com/test.aspx?document=test.docx");

но я получаю

"http%3a%2f%2fexample.com%2ftest.aspx%3fdocument%3dtest.docx"

Так что я должен использовать как замену строки и делать это вручную и заменять все периоды на этот код?

4b9b3361

Ответ 1

Период, когда нет проблемы (учитывая, что% 2E не решает проблему). Период - это абсолютно правильный URL-адрес, независимо от того, является ли он не периодом. Проверьте трассировку стека ошибки, которая бросает или публикует полную информацию об ошибке.

И вы не должны быть URL-кодированием всего пути. Только значение параметра строки запроса.

string b = "http://example.com/test.aspx?document=" + Server.UrlEncode("test.docx");

Вы все еще получаете сообщение об ошибке, если попробуете это?

Я бы не стал трогать SharePoint с помощью десятифутового полюса. Однако избежать этого периода не обязательно приведет к тому, что SharePoint сделает это с помощью махинаций. Но я думаю, вы должны хотя бы попробовать.

Server.UrlEncode("test.docx").Replace(".", "%2E");

Ответ 2

Это действительно старый вопрос, но я столкнулся с этим поиском аналогичной проблемы. Я вставил "/" на конец моего URL с периодами в них, и он столкнулся с проблемой.