Как URL кодировать периоды? - PullRequest
24 голосов
/ 31 мая 2011

Мне нужно, чтобы 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"

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

Ответы [ 2 ]

26 голосов
/ 06 августа 2016

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

18 голосов
/ 31 мая 2011

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

И вам не следует указывать URL-адрес, кодирующий весь путь.Только параметр строки запроса значение .

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

Вы по-прежнему получаете сообщение об ошибке, если пытаетесь сделать это таким образом?

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

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