开发者

Get string from Server.UrlEncode as uppercase

I want its output as uppercase. This is what I get on Server.UrlEncode("http://"):

http%3a%2f%2f

but I need:

http%3A%2F%2F

Is t开发者_C百科here built-in solution in C#?


The url encoded shall serve as signature base string (input to signature algorithm) to create digest (hash). The hash will then be verified by other system (java,php,etc), so they need to recreate the hash by signature reconstruction first.


This will uppercase all escaped characters in your string.

string url = "http://whatever.com/something";
string lower = Server.UrlEncode(url);
Regex reg = new Regex(@"%[a-f0-9]{2}");
string upper = reg.Replace(lower, m => m.Value.ToUpperInvariant());


Uri.EscapeDataString("http://")

This code return

http%3A%2F%2F


This is very easy

Regex.Replace( encodedString, @"%[a-f\d]{2}", m => m.Value.ToUpper() )

I.e. replace all hex letter-digit combinations to upper case


I encountered the same problem, I found the answer in this link:

WebUtility.UrlEncode or HttpUtility.UrlEncode

in-short you can use:

System.Net.WebUtility.UrlEncode

which encodes into uppercase hex values


Assuming "http" is always the first four characters then you simply split the string after "http", UrlEncode that part and then call ToUpper() on it. Then join back together with "http" as your prefix.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜