C# 用大写字母编码的URL

C# 用大写字母编码的URL,c#,asp.net,twitter,oauth,urlencode,C#,Asp.net,Twitter,Oauth,Urlencode,可能重复: 我正在使用HttpUtility.UrlEncode方法为我编码一个字符串。问题在于编码位置的字母是小写的,例如: 冒号(:)变为%3a而不是%3a 在我开始加密这个字符串之前,这不是一个很大的问题。我想要的最终结果是这样的 zRvo7cHxTHCyqc66cRT7AD%2BOJII%3D 如果我用大写字母,我会得到这个 zRvo7cHxTHCyqc66cRT7AD+OJII= 这是正确的,但如果我使用小写字母(即使用UrlEncode而不是静态字符串),我会得到这个结果 b6qk

可能重复:

我正在使用HttpUtility.UrlEncode方法为我编码一个字符串。问题在于编码位置的字母是小写的,例如:

冒号(:)变为%3a而不是%3a

在我开始加密这个字符串之前,这不是一个很大的问题。我想要的最终结果是这样的

zRvo7cHxTHCyqc66cRT7AD%2BOJII%3D

如果我用大写字母,我会得到这个

zRvo7cHxTHCyqc66cRT7AD+OJII=

这是正确的,但如果我使用小写字母(即使用UrlEncode而不是静态字符串),我会得到这个结果

b6qk+x9zpFaUD6GZFe7o1PnqXlM=

这显然不是我想要的字符串。有没有一种简单的方法可以使编码字符成为大写,而不必重新发明编码的轮子


Thnaks

当然,在编码字符串之前,请将其封顶。编码通常是基于文字字符值的单行道,因此它的不同结果也就不足为奇了。我想知道,你用它来做什么?有一种更好的方法来处理您正在编码的数据类型

对链接副本的添加:

public static string UpperCaseUrlEncode(this string s)
{
    char[] temp = HttpUtility.UrlEncode(s).ToCharArray();
    for (int i = 0; i < temp.Length - 2; i++)
    {
        if (temp[i] == '%')
        {
            temp[i + 1] = char.ToUpper(temp[i + 1]);
            temp[i + 2] = char.ToUpper(temp[i + 2]);
        }
    }
    return new string(temp);
}
public静态字符串UpperCaseUrlEncode(此字符串为s)
{
char[]temp=HttpUtility.UrlEncode.ToCharArray();
对于(int i=0;i

将其转换为扩展方法允许对任何字符串变量进行大写URL编码。

检查此项,应该可以解决您的问题:是的,就是这个,解决了我的问题!詹姆斯·海伊:是的,你可以投票以重复的方式结束你自己的问题,并/或将其标记为快速结束。我现在已经为你做了。