2

In ASP:

Server.URLEncode("+&(). -*<>/\|")
' returns %2B%26%28%29%2E+%2D%2A%3C%3E%2F%5C%7C

In ASP.NET

Uri.EscapeDataString("+&(). -*<>/\|")
// returns %2B%26().%20-*%3C%3E%2F%5C%7C

HttpUtility.UrlEncode("+&(). -*<>/\|") 
// returns %2b%26().+-*%3c%3e%2f%5c%7c

Is there any elegant way how to mimic old ASP behavior in ASP.NET?

2 Answers 2

3

You can use a regular expression to match the characters that you want to convert, and a lambda expression for creating the hex code:

string input = @"+&(). -*<>/\|";
string encoded = Regex.Replace(
  HttpUtility.UrlEncode(input),
  @"[()\.\-*]",
  m => "%" + Convert.ToString((int)m.Captures[0].Value[0], 16)
);
Sign up to request clarification or add additional context in comments.

1 Comment

I cannot call Regexp elegant but I guess that's best I can get so I accept. Thanks.
0

You can try using Server.UrlEncode(), which is supported in ASP.Net.

1 Comment

Does that produce a different result than HttpUtility.UrlEncode?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.