Le décodage de l'URL supprimera +
d'une chaîne base64, ce qui la rend invalide. Il n'y a aucune raison de m'infliger un vote négatif pour l'avoir signalé. D'autres personnes lisant cette question utiliseront ce code et il est défectueux. Si vous décodez 'a+==', le résultat sera le caractère 'k'. Si vous utilisez le décodage d'URL pour décoder "a+==", le décodage d'URL transformera la chaîne en "a ==" et vous obtiendrez une exception en essayant de la décoder.
En résumé, le .Net Framework utilise une variante de l'encodage Base64 qui n'autorise pas les caractères non valides et PHP, utilisé par le site en question, utilise une autre variante qui autorise les caractères non valides mais les rejette.
Le codage Base64 convertit trois octets en quatre caractères codés. Caractères valides pour les 62 premiers des 64 caractères de l'encodage Base64 :
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
Il existe plusieurs variantes qui autorisent des caractères différents pour les caractères 62 et 63. Avec C#, comme avec les variantes les plus courantes, le jeu de caractères complet est :
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
https://msdn.microsoft.com/en-us/library/dhx0d524(v=vs.110).aspx
Les chiffres en base 64, dans l'ordre croissant à partir de zéro, sont les suivants les caractères majuscules "A" à "Z", les caractères minuscules "a" à "z", les les chiffres "0" à "9" et les symboles "+" et "/". Le caractère sans valeur sans valeur, "=", est utilisé pour le remplissage de la queue.
Cette variante est connue sous le nom d'encodage standard "base64" pour la RFC 3548 ou la RFC 4648, dans lequel les valeurs invalides sont interdites, sauf indication contraire.
PHP utilise l'encodage de transfert Base64 pour MIME (RFC 2045) qui autorise les caractères non valides mais les rejette.
Dans toutes les autres variantes de Base64, les caractères non valides sont interdits.
Si la base64 d'origine était effectivement censée contenir l'élément -
il utilise une variante différente.
Voir : https://en.wikipedia.org/wiki/Base64#Variants_summary_table