从Server.UrlEncode获取大写字符串

lax*_*lax 14 c# encoding urlencode

我希望它的输出为大写.这就是我所得到的Server.UrlEncode("http://"):

http%3a%2f%2f
Run Code Online (Sandbox Code Playgroud)

但是我需要:

http%3A%2F%2F
Run Code Online (Sandbox Code Playgroud)

C#中有内置的解决方案吗?


编码的url应作为签名基本字符串(输入到签名算法)来创建摘要(哈希).然后哈希将由其他系统(java,php等)验证,因此他们需要首先通过签名重建来重新创建哈希.

age*_*t-j 26

这将大写字符串中的所有转义字符.

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());
Run Code Online (Sandbox Code Playgroud)


Plu*_*ell 14

Uri.EscapeDataString("http://")
Run Code Online (Sandbox Code Playgroud)

此代码返回

http%3A%2F%2F
Run Code Online (Sandbox Code Playgroud)