【问题标题】:Convert from uri escaped string to original characters string (C#)从 uri 转义字符串转换为原始字符串 (C#)
【发布时间】:2017-01-24 10:27:34
【问题描述】:

我有一个代表 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.Unescape(input)

标签: c# url escaping urldecode


【解决方案1】:

您的字符串不是 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    • 2011-05-23
    • 1970-01-01
    相关资源
    最近更新 更多