URL用大写字母编码



可能重复:
.net UrlEncode-小写问题

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

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

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

zRvo7cHxTHCyqc66cRT7AD%2BOJII%3D

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

zRvo7cHxTHCyqc66cRT7AD+OJII=

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

b6qk+x9zpFaUD6GZFe7o1PnqXlM=

这显然不是我想要的绳子。有没有一种简单的方法可以在不重新发明UrlEncoding轮子的情况下使编码字符大写?

Thnaks

当然,在对字符串进行编码之前先对其进行CAP。编码通常是基于文字字符值的单向街道,因此结果会有所不同也就不足为奇了。不过,我确实想知道,你用它来获得什么样的价值?当然,有一种更好的方法来处理您正在编码的类型的数据。

添加到链接副本:

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);
}

将其转换为扩展方法,可以对任何字符串变量进行UPPER CASE URL编码。

最新更新