Quel fichier est un Base64 qui commence par JVBERi0 ?
JVBERi0 = PDF Un PDF. Tout PDF commence par les octets `%PDF-`, qui donnent `JVBERi0` en Base64. `iVBORw0KGgo` est un PNG, `/9j/` un JPEG et `UEsDB` un ZIP, ce qui inclut DOCX et XLSX.
Base64 en PDF en ligne : collez du Base64 brut, une data URI ou toute la réponse JSON. L'outil détecte le vrai type de fichier, l'affiche, le télécharge et signale les PDF tronqués. PDF en Base64 aussi. Rien n'est envoyé.
Interprété ainsi :
Déposez ici un PDF ou tout autre fichier, ou cliquez pour parcourir
Tout type de fichier · jusqu'à 50 MB · jamais envoyé
Chaque type de fichier commence par des octets « magiques » fixes, donc son Base64 commence par des caractères fixes. Les préfixes ci-dessous sont calculés à partir de vrais en-têtes de fichiers par le moteur même de cet outil.
| Le Base64 commence par | Type de fichier | Octets magiques (hex) |
|---|---|---|
JVBERi0 | 25 50 44 46 2D | |
iVBORw0KGgoAAAANSUhEU | PNG | 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 |
/9j/ | JPEG | FF D8 FF |
R0lGOD | GIF | 47 49 46 38 |
UEsDB | ZIP / DOCX / XLSX / PPTX | 50 4B 03 04 |
0M8R4KGxGu | Office 97–2003 (DOC/XLS/PPT) | D0 CF 11 E0 A1 B1 1A E1 |
H4sI | Gzip | 1F 8B 08 |
UklGR | RIFF (WebP / WAV / AVI) | 52 49 46 46 |
SUQz | MP3 (ID3) | 49 44 33 |
e1xydG | RTF | 7B 5C 72 74 66 |
Rédigé et relu par les ingénieurs qui développent les outils d'encodage de Go Tools. Chaque longueur, préfixe et exemple de cette page est produit par le moteur de la page elle-même et vérifié par des tests automatisés.
JVBERi0 = PDF Un PDF. Tout PDF commence par les octets `%PDF-`, qui donnent `JVBERi0` en Base64. `iVBORw0KGgo` est un PNG, `/9j/` un JPEG et `UEsDB` un ZIP, ce qui inclut DOCX et XLSX.
+33.3% 4 caractères pour 3 octets, soit environ 33.3% de plus : un PDF de 1 Mo (1 048 576 octets) devient 1 398 104 caractères. Avec un retour à la ligne tous les 76 caractères, comme dans les pièces jointes d'e-mail, on arrive à 1 434 896 caractères, soit 36.8% de plus.
Le Base64 représente des octets quelconques avec seulement 64 caractères texte sûrs (A–Z, a–z, 0–9, +, /), plus = comme padding. Chaque groupe de 3 octets devient 4 caractères. Un fichier binaire comme un PDF peut ainsi passer par des canaux qui ne transportent que du texte : un champ JSON, un élément XML, le corps d'un e-mail, une colonne texte en base de données. Convertir du Base64 en PDF, c'est simplement l'opération inverse : retransformer les caractères en octets et les enregistrer avec l'extension .pdf. Le problème, c'est que le Base64 réel arrive rarement propre : il traîne un préfixe data:, des échappements JSON, des retours à la ligne ou un autre alphabet, et beaucoup de convertisseurs produisent sans rien dire un fichier qui ne s'ouvre pas.
%PDF-1.4 → bytes 25 50 44 46 2D 31 2E 34 JVBERi0xLjQ= → the same bytes in Base64 data:application/pdf;base64,JVBERi0xLjQ= → data URI form
Gère les data URI, les échappements JSON \/ et \n, les guillemets, les retours à la ligne MIME, les - _ URL-safe, les %2B %2F venus d'une URL, les en-têtes PEM et le padding = manquant, et affiche chaque étape appliquée.
Collez {"code":0,"data":{"file":"JVBERi0…"}} tel quel. Le champ le plus long qui ressemble à du Base64 est utilisé et son chemin (data.file) est affiché : vous savez quel champ a été décodé.
PDF, PNG, JPEG, GIF, WebP, DOCX, XLSX, PPTX, ZIP, GZIP, MP3, MP4 et plus de 40 autres formats sont reconnus à leurs premiers octets. Le téléchargement reçoit la bonne extension, même quand le préfixe dit autre chose.
Signale un PDF sans %%EOF (coupé lors du copier-coller ou par la taille limite d'une colonne), un Base64 encodé deux fois, de l'hexadécimal collé comme du Base64, des données compressées en gzip et les PDF chiffrés.
Les PDF s'ouvrent dans la visionneuse intégrée du navigateur, les images et le SVG s'affichent, le texte et le JSON sont montrés en texte. Le HTML n'est jamais rendu, seul son code source apparaît, car il s'exécuterait sur cette page.
Déposez un fichier jusqu'à 50 MB et obtenez du Base64 brut ou une data URI, en option URL-safe ou coupé à 76 caractères, avec le surcoût de taille exact.
base64.b64decode open('out.pdf', 'wb').write(base64.b64decode(s)). Utilisez urlsafe_b64decode pour - et _ ; b64decode ignore les retours à la ligne sauf si vous passez validate=True.
java.util.Base64 Files.write(Path.of("out.pdf"), Base64.getMimeDecoder().decode(s)). getDecoder() rejette les retours à la ligne ; getUrlDecoder() sert pour - et _.
Buffer fs.writeFileSync('out.pdf', Buffer.from(s, 'base64')). Buffer accepte les deux alphabets et ignore les espaces, mais il saute aussi en silence tout autre caractère illégal au lieu de lever une erreur : vérifiez que le résultat commence par %PDF-.
atob / Uint8Array.fromBase64 Construisez un Uint8Array avant de créer le Blob. Uint8Array.fromBase64() est la fonction native plus récente ; vérifiez sa prise en charge dans les navigateurs ciblés.
base64_decode file_put_contents('out.pdf', base64_decode($s, true)). Passez true pour le mode strict, sinon les caractères invalides sont supprimés sans avertissement.
Convert.FromBase64String File.WriteAllBytes("out.pdf", Convert.FromBase64String(s)). Les espaces sont acceptés ; - et _ ne le sont pas.
base64 -d / certutil macOS et Linux : base64 -d < in.txt > out.pdf. Windows : certutil -decode in.txt out.pdf.
JVBERi0xLjQKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4K…
PDF · version 1.4 · téléchargé sous file.pdf
Commence par JVBERi0, c'est-à-dire %PDF-. Rien à nettoyer, le décodage se fait tel quel.
"data:application\/pdf;base64,JVBERi0xLjQK…"
Interprété ainsi : guillemets retirés → échappements JSON annulés → préfixe data URI retiré (application/pdf)
Le json_encode de PHP et certains sérialiseurs Java écrivent / sous la forme \/. Collé dans un décodeur qui ne l'annule pas, l'antislash devient un caractère illégal.
{"code":0,"data":{"name":"invoice.pdf","file":"JVBERi0xLjQK…"}} Interprété ainsi : champ data.file extrait du JSON
Inutile de découper la chaîne à la main. Le champ le plus long qui ressemble à du Base64 est utilisé et son chemin est affiché.
data:application/pdf;base64,iVBORw0KGgoAAAANSUhEUgAA…
Attention : la data URI annonce application/pdf, mais les octets sont un PNG. Enregistré sous file.png
Beaucoup de convertisseurs écriraient un .pdf qu'aucun lecteur ne peut ouvrir. Les octets magiques l'emportent sur l'étiquette.
255044462d312e370a…
Attention : cela ressemble à de l'hexadécimal ; lu en hex, c'est un PDF. [Décoder en hex]
Les chiffres hexadécimaux sont tous des caractères Base64 valides, donc le décodage Base64 n'échoue pas : il produit silencieusement des données inutilisables. 25 50 44 46 correspond à %PDF.
Base64 brut, data:application/pdf;base64,…, chaîne copiée depuis du JSON avec des échappements \/, ou réponse d'API complète. Pour les chaînes très longues, utilisez Ouvrir un fichier .txt plutôt que de coller.
La ligne sous la zone de saisie liste chaque étape de nettoyage : préfixe retiré, échappements annulés, padding ajouté, champ extrait du JSON. En cas de problème, l'erreur indique le caractère fautif et sa position exacte.
Le badge affiche le type lu dans les octets magiques du fichier. Une note jaune apparaît si ce n'est pas vraiment un PDF, si la data URI ment sur le type, ou si le PDF est coupé avant %%EOF.
Les PDF s'ouvrent dans la visionneuse du navigateur, les images et le texte s'affichent directement. Renommez le fichier si besoin puis cliquez sur Télécharger. Pour le sens inverse, passez à PDF / fichier → Base64 et déposez un fichier.
data:application/pdf;base64, ne fait pas partie du Base64. Le laisser provoque soit une erreur (: et ; sont illégaux), soit, avec un décodeur permissif, des premiers octets corrompus : le fichier ne commence plus par %PDF-.
base64.b64decode(value) # value = 'data:application/pdf;base64,JVBERi0…'
b64 = value.split(',', 1)[1] if value.startswith('data:') else value
pdf = base64.b64decode(b64) Un PDF est binaire. Convertir les octets décodés en chaîne puis écrire cette chaîne avec un encodage texte remplace les octets invalides et modifie les fins de ligne, ce qui casse la table de références croisées.
fs.writeFileSync('out.pdf', Buffer.from(b64, 'base64').toString()) fs.writeFileSync('out.pdf', Buffer.from(b64, 'base64')) Le Base64.getDecoder() de Java rejette les retours à la ligne. Le Base64 issu d'un e-mail ou de la commande base64 sous Linux est coupé à 76 caractères. Utilisez le décodeur MIME, ou supprimez d'abord les espaces.
byte[] pdf = Base64.getDecoder().decode(wrapped); // IllegalArgumentException
byte[] pdf = Base64.getMimeDecoder().decode(wrapped);
Les JWT et beaucoup de paramètres d'URL utilisent - et _ au lieu de + et /, et omettent le padding =. Un décodeur standard les rejette ou décode de mauvais octets.
base64.b64decode(token_part) # contains - and _
base64.urlsafe_b64decode(token_part + '=' * (-len(token_part) % 4))
Dans le navigateur, atob renvoie une chaîne binaire, un caractère par octet. La passer à new Blob([str]) l'encode en UTF-8, et chaque octet supérieur à 127 devient deux octets. Copiez-la d'abord dans un Uint8Array.
new Blob([atob(b64)], { type: 'application/pdf' }) const bytes = Uint8Array.from(atob(b64), c => c.charCodeAt(0));
new Blob([bytes], { type: 'application/pdf' }) Un PDF se termine par %%EOF. Si le Base64 a été coupé par une colonne VARCHAR, une limite de longueur de ligne de log ou une copie incomplète, le fichier se décode mais les lecteurs affichent une erreur ou des pages manquantes. Comparez la longueur avec celle produite par l'émetteur.
SELECT LENGTH(pdf_b64) FROM docs; -- 65535: suspiciously round
ALTER TABLE docs MODIFY pdf_b64 LONGTEXT; -- or store the bytes in a BLOB
{"filename": …, "content": "<base64>"}. Encodez le fichier ici pour construire une requête de test dans Postman ou cURL.%%EOF absent vous indique que la colonne ou la ligne de log était trop courte.+ / (standard, section 4) et - _ (sûr pour les URL et les noms de fichiers, section 5). Le Base64 URL-safe omet généralement le padding =. Une chaîne qui mélange les deux a été modifiée ou assemblée.= rend la longueur multiple de 4. Sans lui, un reste de 2 ou 3 peut être complété ; un reste de 1 est impossible pour un Base64 valide : un caractère a été perdu ou ajouté. Un = au milieu signifie en général que deux chaînes ont été concaténées.%PDF- pour un PDF, 89 50 4E 47 pour un PNG, 50 4B 03 04 pour les formats basés sur ZIP comme DOCX et XLSX. Ces octets fixent les premiers caractères Base64, donc le type se lit avant même le décodage : voir le tableau dans l'outil.%%EOF. Si ce marqueur n'apparaît pas dans les 1 024 derniers octets, le fichier a presque certainement été coupé. L'en-tête peut commencer jusqu'à 1 024 octets plus loin ; la plupart des lecteurs ouvrent quand même ces fichiers, donc c'est signalé sans être rejeté.{"filename": "invoice.pdf", "mime": "application/pdf", "content": "…"}) ou utilisez une data URI, pour que le destinataire n'ait pas à deviner.%PDF-. Une seule ligne de code attrape les mauvais champs, le double encodage et les pages d'erreur renvoyées en Base64.multipart/form-data ou une URL de téléchargement pré-signée est plus léger pour les deux côtés.BLOB/bytea est un tiers plus petite et ne peut pas être tronquée en silence comme un VARCHAR. N'encodez en Base64 qu'à la frontière de l'API.data:application/pdf;base64,, les guillemets, les retours à la ligne et les échappements JSON peuvent rester : ils sont retirés automatiquement. data: a été décodé avec les données ; les octets ont été écrits comme du texte et non en binaire ; la chaîne a été coupée (pas de %%EOF à la fin) ; le Base64 a été encodé deux fois ; ou ce n'est pas du tout un PDF, par exemple un PNG ou un message d'erreur JSON. Collez la même chaîne ici : chacun de ces cas affiche un avertissement précis. JVBERi0 pour un PDF, iVBORw0KGgo pour un PNG, /9j/ pour un JPEG, R0lGOD pour un GIF, UEsDB pour un ZIP (et donc DOCX, XLSX, PPTX), H4sI pour du gzip. L'outil lit les octets magiques décodés, affiche le type et enregistre le fichier avec l'extension correspondante. data:application/pdf;base64,JVBERi0…. Les navigateurs peuvent l'ouvrir directement comme lien ou comme src. Les API attendent en général uniquement la partie Base64 après la virgule. %PDF-. Le type affiché est ce que les octets sont réellement. Les surprises fréquentes : un scan PNG ou JPEG, un DOCX, un ZIP contenant plusieurs PDF, ou un message d'erreur JSON ou HTML encodé en Base64 à la place du document. %%EOF. S'il manque, le Base64 a presque certainement été tronqué : copié en partie seulement, coupé par une colonne de base de données comme un TEXT MySQL (65 535 octets), ou raccourci par une limite de longueur de ligne de log. Récupérez à nouveau la chaîne complète ; le décodage ne peut pas reconstituer des données manquantes. Encodage et formatage
La table ASCII complète : 128 caractères en décimal, hexadécimal, octal et binaire, plus un convertisseur texte ↔ ASCII. Les caractères de contrôle ont leur échappement, leur notation caret et où vous les croisez.
Encodage et formatage
Générez des codes-barres EAN-13, UPC-A, Code 128, Code 39 et 11 autres formats en SVG ou en PNG prêt à imprimer. Saisissez 12 chiffres, la clé de contrôle est ajoutée ; en cas d'erreur, le chiffre attendu est indiqué.
Encodage et formatage
Décodez et encodez en Base64 en ligne gratuitement. Conversion en temps réel, support UTF-8 et émojis. 100 % privé, dans votre navigateur.
Encodage et formatage
Décodez une chaîne Base64 ou un URI de données en image dans votre navigateur. Aperçu, dimensions et MIME, puis téléchargement en PNG, JPG, GIF, SVG. Sans envoi.
Encodage et formatage
Convertissez du CSV en JSON dans le navigateur. RFC 4180, inférence de types, ligne d'en-tête, sûr pour grands entiers. 100 % privé, sans envoi.
Encodage et formatage
Collez du texte illisible et récupérez l'original. Chaque chaîne d'encodage plausible — UTF-8, GBK, Big5, Shift_JIS, EUC-KR, Windows-1252 — est testée puis classée, la chaîne exacte affichée. Gratuit, privé, dans votre navigateur.