Comment décoder du Base64 en ASCII
- Collez le Base64 dans Entrée · Base64. Le Jeu de caractères est réglé sur ASCII.
- Lisez le texte dans Sortie · texte. Chaque octet au-delà de 127 apparaît sous la forme
�. - Si vous voyez
�, le contenu n’est pas purement ASCII. Passez le Jeu de caractères en UTF-8 ou Windows-1252 pour le lire. - Utilisez Copier la sortie ou Télécharger pour récupérer les octets décodés.
Pour encoder du texte simple dans l’autre sens, utilisez ASCII en Base64.
Un décodage ASCII strict
Beaucoup d’outils lisent les octets au-delà de 127 dans un jeu de caractères 8 bits quelconque : un octet non ASCII devient une lettre plausible et personne ne le remarque. Ici, l’ASCII s’arrête à 127, et chaque octet de 128 à 255 s’affiche sous la forme du caractère de remplacement. Le nombre de symboles � est le nombre d’octets non ASCII.
La page sert donc de test rapide avant de transmettre des données décodées à un système qui n’accepte que l’ASCII. Une lettre accentuée en UTF-8 occupe deux octets et s’affiche donc �� ; un guillemet typographique occupe trois octets et s’affiche ���.
Exemples
| Base64 | Octets (hex) | En ASCII |
|---|---|---|
QVNDSUk= | 41 53 43 49 49 | ASCII |
MjAwIE9L | 32 30 30 20 4F 4B | 200 OK |
YQli | 61 09 62 | a, tabulation, b |
Y2Fmw6k= | 63 61 66 C3 A9 | caf�� (café en UTF-8) |
4oCcaGnigJ0= | E2 80 9C 68 69 E2 80 9D | ���hi��� (“hi” en UTF-8) |
Les deux dernières lignes se décodent correctement avec le Jeu de caractères réglé sur UTF-8. Le champ Ressemble à de la ligne d’état nomme toujours le format : un PNG ou un PDF est donc reconnu même en mode ASCII ; repassez en UTF-8 et l’outil propose un lien vers le décodeur de fichiers adapté.
Reconnaître de l’ASCII en Base64
Un texte ASCII a une allure reconnaissable en Base64. Comme chaque octet est inférieur à 80, le premier caractère de chaque groupe de 4 caractères est compris entre A et f, jamais entre g et z, ni un chiffre, + ou /. Les positions des caractères ne se correspondent pas une à une, en revanche : 3 caractères ASCII deviennent toujours 4 caractères Base64, et vous ne pouvez pas décoder une sous-chaîne qui ne commence pas à une frontière de groupe de 4 caractères.
S’il vous faut le code de chaque caractère, les valeurs d’octets sont à une étape : QVNDSUk= donne 65 83 67 73 73 en décimal. Base64 en décimal et Base64 en hex les listent, et Base64 en binaire montre les bits.
Base64 en ASCII dans le code
import base64
base64.b64decode("QVNDSUk=").decode("ascii") # 'ASCII'
base64.b64decode("Y2Fmw6k=").decode("ascii")
# UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 3
list(base64.b64decode("QVNDSUk=")) # [65, 83, 67, 73, 73]
JavaScript cache un piège : d’après le WHATWG Encoding Standard, new TextDecoder("ascii") est un alias de Windows-1252, il décode donc Y2Fm6Q== en café et ne signale jamais les octets non ASCII. Vérifiez plutôt les octets vous-même, par exemple avec bytes.every(b => b < 128). Plus de détails dans Base64 en JavaScript et Base64 en Python.
FAQ
Comment convertir du Base64 en texte ASCII ?
Collez le Base64 ci-dessus. Chaque octet décodé de 0 à 127 s’affiche sous forme de caractère ASCII. En Python, base64.b64decode(s).decode("ascii") fait la même chose et lève une erreur sur tout octet au-delà de 127.
Pourquoi des symboles � apparaissent-ils dans la sortie ?
Ces octets ne sont pas de l’ASCII. Le plus souvent, le texte est en UTF-8 avec des lettres accentuées, des guillemets typographiques ou des emoji ; passez le Jeu de caractères en UTF-8 pour le lire. Si la sortie n’est presque que des �, les données sont probablement un fichier.
Comment obtenir les codes ASCII sous forme de nombres ?
Utilisez Base64 en décimal pour des valeurs d’octets comme 65 83 67 73 73, ou Base64 en hex pour 41 53 43 49 49.
Un texte ASCII peut-il contenir des caractères invisibles ?
Oui : la tabulation, le retour chariot, le saut de ligne et les autres codes de contrôle 0–31 font partie de l’ASCII. Ils se décodent normalement : une tabulation entre deux mots reste une tabulation.