2017-01-24 2 views
-1

J'ai une chaîne qui représente une chaîne d'échappement uri.Conversion d'une chaîne d'échappement uri en chaîne de caractères d'origine (C#)

Je veux le convertir en caractères d'origine.

Par exemple:

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

est nécessaire pour être converti en: (sortie désiré)

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

Le convertion est écrit ici: http://www.w3schools.com/tags/ref_urlencode.asp

% 2F est besoin d'être converti en '/'

% 2B est nécessaire de être converti en « + »

% 3D est nécessaire d'être converti en « = »

etc

+3

Ce n'est pas 'base64' codé ... votre sortie désirée est ... pourquoi vous ne venez d'utiliser' Uri.Unescape (entrée) '? –

Répondre

2

Votre chaîne n'est pas codé en base64 il est juste uri chaîne se sont échappés. Pour Unescape il vous pouvez utiliser construit dans la méthode de Uri objet qui est appelé 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