从 uri 转义字符串转换为原始字符串 (C#)

Convert from uri escaped string to original characters string (C#)

我有一个代表 uri 转义字符串的字符串。

我想把它转成原始字符串

例如:

6B%2FdHJaYVYZ9%2BkbVbNwB%2FmxPXwJhzmfIC8aUWOg%2F2mFCWzyrXaRHFsYLZSVedck3UW3FppuUG0jn2f4JMVUx9Q%3D%3D

需要转换为:(所需输出)

6B/dHJaYVYZ9+kbVbNwB/mxPXwJhzmfIC8aUWOg/2mFCWzyrXaRHFsYLZSVedck3UW3FppuUG0jn2f4JMVUx9Q==

转换写在这里: http://www.w3schools.com/tags/ref_urlencode.asp

%2F 需要转换为'/'

%2B 需要转换为'+'

%3D 需要转换为'='

等等

您的字符串不是 base64 编码的,它只是 uri 转义字符串。要取消转义,您可以使用 Uri 对象中的内置方法 UnescapeDataString :

string uriString = "6B%2FdHJaYVYZ9%2BkbVbNwB%2FmxPXwJhzmfIC8aUWOg%2F2mFCWzyrXaRHFsYLZSVedck3UW3FppuUG0jn2f4JMVUx9Q%3D%3D"
string unescaped = Uri.UnescapeDataString(uriString);
Assert.AreEqual("6B/dHJaYVYZ9+kbVbNwB/mxPXwJhzmfIC8aUWOg/2mFCWzyrXaRHFsYLZSVedck3UW3FppuUG0jn2f4JMVUx9Q==", unescaped);

Online example