2017-01-24 1 views
-1

У меня есть строка, представляющая строку с экранированным uri.Преобразование из строки с уриной строкой в ​​исходную строку символов (C#)

Я хочу преобразовать его в исходную строку символов.

Например:

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

необходимо, чтобы быть преобразованы в: (требуемый выход)

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

Convertion написано здесь: http://www.w3schools.com/tags/ref_urlencode.asp

% 2F это должны быть преобразованный в '/'

% 2B необходимо быть преобразованы в «+»

% 3D является должны быть преобразованы в «=»

и т.д.

+3

Это не 'base64' закодированы ... Ваш желаемый результат является ... Почему вы не просто использовать' Uri.Unescape (вход) '? –

ответ

2

Ваша строка не в кодировке 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