Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to URL encode periods?

I need to URL encode some periods since I have to pass some document path along and it is like this

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

So test.docx is causing me an error of an illegal character. So I need to change it to

.  -->  %2E 

I tried to use Server.UrlEncode

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

but I get

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

So do I have to use like a string replace and do it manually and replace all periods with that code?

like image 476
chobo2 Avatar asked May 31 '11 17:05

chobo2


People also ask

How do you pass a period in a URL?

Just add a \ before the period. Something like: \.

What does %20 in a URL mean?

A space is assigned number 32, which is 20 in hexadecimal. When you see “%20,” it represents a space in an encoded URL, for example, http://www.example.com/products%20and%20services.html.


2 Answers

This is a really old question, but I ran into this searching for a similar problem. I stuck a "/" onto the end of my url's with periods in them and it got around the problem.

like image 157
Andrew Edvalson Avatar answered Sep 18 '22 21:09

Andrew Edvalson


The period there isn't he problem (given that %2E doesn't solve the problem). A period is a perfectly valid URL character whatever the problem is it's not the period. Check the stack trace of the error being throw or post the complete error details.

And you shouldn't be URL encoding the entire path. Only the query string parameter value.

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

Are you still getting the error if you try it that way?

I wouldn't touch SharePoint with a ten foot pole. However, escaping the period wouldn't necessarily stop SharePoint from doing it's shenanigans. But I guess you should at least try it.

Server.UrlEncode("test.docx").Replace(".", "%2E"); 
like image 31
John Leidegren Avatar answered Sep 19 '22 21:09

John Leidegren