从Server.UrlEncode获取字符串为大写
我希望它的输出为大写。 这是我在Server.UrlEncode("http://")
:
http%3a%2f%2f
但是我需要:
http%3A%2F%2F
C#中有内置的解决方案吗?
编码的url应作为签名基本字符串(输入到签名算法)来创建摘要(哈希)。 然后哈希将由其他系统(java,php等)validation,因此他们需要首先通过签名重建来重新创建哈希。
这将大写字符串中的所有转义字符。
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://")
此代码返回
http%3A%2F%2F
这很容易
Regex.Replace( encodedString, @"%[af\d]{2}", m => m.Value.ToUpper() )
即将所有hex字母数字组合替换为大写
假设“http”总是前四个字符,那么你只需将字符串拆分为“http”后, UrlEncode
将该部分分开然后调用ToUpper()
。 然后加入“http”作为您的前缀。