2009-12-03 4 views
1

J'ai besoin de Base64 coder une chaîne, mais la chaîne codée ne peut pas contenir "+". Wikipedia mentionne un modified Base64 for URL, mais je ne trouve pas de classe .NET qui l'utilise.Est-ce qu'une chaîne encodée avec Base64 peut contenir "+"?

Pour mon application, je ne peux même pas encoder "+" dans "% 2B". C'est parce que je passe la chaîne encodée à un service sur lequel je n'ai aucun contrôle, et ce service altère toutes les chaînes qui contiennent "% 2B". Pour cette raison, je veux que ma chaîne codée ne contienne que A-Z, a-z, 0-9, -, et _.

Je suis au courant de this having been asked before, mais je ne vois pas de réponse pratique. Toute aide serait appréciée.

+0

Il semble que le service que vous ne contrôlez pas ne stocke la valeur que pour vous, sans la désencoder. Si vous êtes unencoding, vous pouvez utiliser Base64 pour les URL (ou ce que vous voulez, en fait). –

Répondre

2

vous ne pouvez pas simplement remplacer + et / par - et _ et vice versa lors du décodage?

+1

Bien sûr! Je ne peux pas croire que je n'ai pas vu ça. C'est ce que j'ai pour coder tard le soir. Merci. – royco

+0

Hm, je suis habituellement mieux tard dans la nuit que tôt le matin. Mais se présenter à midi réduit malheureusement le temps que je pourrais demander à mes collègues :-) – Joey

1

Utilisez ce encodeur base64 que vous avez, puis trouver et remplacer le « + » avec tout ce qui est approprié (quel que soit votre autre extrémité attend la place)

Questions connexes