Générateur de QR code

Créez des QR codes scannables pour URL, Wi-Fi, email et texte, entièrement dans votre navigateur.

Ce générateur de QR code crée des codes scannables pour une URL, un réseau Wi-Fi, un email, un numéro de téléphone ou du texte brut, et se redessine en direct pendant que vous tapez. Il fait tourner un vrai encodeur ISO 18004 dans votre navigateur, error correction Reed-Solomon comprise, donc rien n'est envoyé, aucun raccourcisseur ne réécrit votre lien, et le code n'expire jamais. Choisissez parmi quatre niveaux d'error correction (L, M, Q, H), réglez la taille des modules et vos propres couleurs sombre et de fond, avec un avertissement de contraste quand une combinaison échouerait aux lecteurs. Le téléchargement est un PNG pixel pour pixel de l'aperçu, quiet zone comprise. Les chaînes Wi-Fi sont échappées pour vous afin que les caractères spéciaux ne cassent pas la connexion.

100% dans votre navigateur. Rien de ce que vous tapez ne quitte cette page.

Générateur de QR code

Choisissez ce que vous voulez partager (un lien, votre réseau Wi-Fi, un email, un numéro de téléphone, du texte brut) et le code se redessine pendant que vous tapez. Tout se passe sur un canvas, dans votre propre navigateur. Pas d'API derrière, pas de raccourcisseur qui réécrit votre URL, pas de date d'expiration. J'ai implémenté la vraie spec QR en JavaScript pour cet outil, error correction Reed-Solomon comprise, puis j'ai vérifié la sortie octet par octet face à un décodeur indépendant, jusqu'à ce que chaque payload de test se scanne. Ça comptait pour moi. Un générateur qui produit des codes qui se scannent presque, c'est pire que pas de générateur du tout.

En attente de saisie.

Le PNG téléchargé est pixel pour pixel ce que vous voyez ici, quiet zone comprise.

Comment un QR code encode réellement vos données

Enlevez le côté mystérieux et un QR code n'est qu'un format de fichier très têtu. Votre texte est converti en octets UTF-8. Ces octets reçoivent un petit en-tête (4 bits qui disent « ceci est du byte mode », puis la longueur) et tout le flux est découpé en codewords de 8 bits. Ensuite vient la partie intéressante : l'error correction Reed-Solomon. L'encodeur traite vos codewords comme un polynôme, le divise par un polynôme générateur sur un corps fini, et ajoute le reste à la fin. Ça sonne abstrait, mais l'effet est très concret. Ces codewords supplémentaires sont des copies de secours mathématiques, et un scanner peut s'en servir pour reconstruire des données manquantes ou mal lues. C'est la même famille de maths qui permet à un CD rayé de continuer à jouer.

Les bits parcourent ensuite la grille en zigzag, deux colonnes à la fois, en partant du coin inférieur droit. Les trois gros carrés qu'on voit dans chaque QR code sont les finder patterns. C'est grâce à eux qu'un téléphone accroche le code de biais, à l'envers, peu importe. Une bande de modules alternés (le timing pattern) indique au décodeur l'espacement de la grille, et une bande de format de 15 bits, stockée deux fois par redondance, précise quel niveau d'error correction et quel mask ont été utilisés.

Les masks, c'est mon détail préféré. Les données brutes peuvent produire des zones gênantes, genre un gros pâté noir ou un faux finder pattern qui perturbe les scanners. La spec définit donc huit motifs XOR, l'encodeur note les huit selon quatre règles de pénalité, et garde celui qui obtient le score le plus bas. Cet outil fait l'évaluation complète à chaque frappe. Franchement, c'est du luxe pour un code affiché à l'écran, mais la spec dit les huit, alors va pour les huit.

Niveaux d'error correction : quand H vaut vraiment le coup

Les quatre niveaux échangent de la taille contre de la résistance. L récupère environ 7 % des codewords endommagés, M environ 15 %, Q environ 25 % et H environ 30 %. Plus de récupération veut dire plus de codewords d'error correction, donc une grille plus grande et plus dense pour le même contenu. Exemple concret : l'URL https://peoplearegeek.com/ tient dans un code 25x25 au niveau M. La même URL au niveau H exige du 33x33. Imprimée à la même taille physique, la version H a des modules plus petits, et les petits modules, c'est exactement ce qui fait souffrir les caméras bas de gamme.

Alors voilà mon avis honnête pour choisir. M convient à la plupart des usages : écrans, slides, papier propre. H mérite son surcoût de taille dans deux situations. Un, vous posez un logo au milieu du code (ce logo, c'est littéralement de la donnée détruite, et H vous donne la marge pour y survivre). Deux, le code vit dans un endroit hostile : un autocollant en extérieur, une bouteille courbée, une étiquette d'entrepôt qui se fait rayer tous les jours. Q, c'est l'enfant du milieu ; je ne le choisis presque jamais. Et L n'a de sens que quand vous casez un long texte dans un code qui ne sera jamais scanné ailleurs que sur un écran lumineux.

Un truc que les gens comprennent de travers : un niveau plus élevé ne fait pas scanner plus vite ou de plus loin un code propre et bien imprimé. Si rien n'est abîmé, cette redondance supplémentaire reste là à densifier votre code pour rien. Ne payez pas une assurance que vous ne pourrez pas utiliser.

Le format Wi-Fi des QR codes, décodé

Quand vous choisissez le preset Wi-Fi, l'outil construit une chaîne comme celle-ci :

WIFI:T:WPA;S:MonReseau;P:MonMotDePasse;;

C'est tout le truc. T est le type de sécurité (WPA couvre WPA, WPA2 et WPA3 personnel ; WEP existe pour le matériel antique ; nopass veut dire réseau ouvert). S est le SSID, P le mot de passe, et un réseau caché ajoute H:true. Les appareils photo iOS et Android le comprennent nativement, sans aucune appli : on pointe, on touche la bannière, connecté.

Là où ça mord, c'est l'échappement. Si votre SSID ou votre mot de passe contient un antislash, un point-virgule, une virgule, un deux-points ou un guillemet double, il doit être échappé avec un antislash, sinon le parseur coupe le champ trop tôt et la connexion échoue en silence avec une erreur de mot de passe. L'outil échappe ces cinq caractères pour vous, et c'est franchement la moitié de la raison d'utiliser un générateur plutôt que de taper la chaîne à la main. Une vraie limite quand même : les réseaux enterprise (ceux avec identifiant et mot de passe, le 802.1X) ne marchent pas du tout avec ce format. Il n'existe aucune chaîne QR standard pour eux.

Conseils d'impression et de contraste pour garder un code scannable

La plupart des plaintes « mon QR code ne marche pas » se résument à quatre erreurs physiques, et toutes sont évitables.

  • Respectez la quiet zone. La spec demande quatre modules de fond vide autour du code. Cet outil intègre cette marge dans le PNG, donc ne la rognez pas dans votre logiciel de mise en page, et ne collez pas du texte ou une bordure contre le bord.
  • Gardez du sombre sur du clair. Les scanners binarisent l'image en s'attendant à des modules sombres sur fond clair. Un code inversé (blanc sur noir) échoue sur pas mal de lecteurs, même si ça a de l'allure. L'outil vous prévient quand vos couleurs partent dans le mauvais sens, ou quand le contraste descend trop bas. Bleu marine sur blanc, ça passe. Jaune sur blanc, c'est pile ou face, au mieux.
  • Dimensionnez selon la distance de scan. Ma règle empirique : largeur minimale du code = distance de scan divisée par 10. Une affiche scannée à un mètre demande un code d'au moins 10 cm de large. Une carte de visite scannée à 25 cm s'en sort avec 2,5 cm, mais seulement si le contenu est court. URL longue plus niveau H plus impression minuscule, c'est la recette du carré de bruit inscannable.
  • Le mat bat le brillant. Un pelliculage brillant renvoie les reflets droit dans l'objectif. Si vous pouvez choisir la finition, prenez le mat. Et avant d'imprimer 500 flyers, testez la vraie épreuve imprimée avec deux téléphones, dont un vieux et mauvais si possible. Ce test de cinq minutes m'a fait économiser de l'argent, du vrai.

Sources et pour aller plus loin

Questions fréquentes

Mes données sont-elles envoyées à un serveur ?

Non. L'encodeur est du JavaScript pur qui tourne dans votre navigateur, et le PNG sort directement d'un canvas local. Votre mot de passe Wi-Fi ne quitte jamais votre machine. Ouvrez l'onglet réseau des DevTools pendant que vous tapez et regardez-le rester vide, c'est exactement la preuve que je demanderais moi aussi.

Les QR codes créés ici expirent-ils ?

Jamais. Cet outil fabrique des codes statiques : votre contenu réel est encodé dans le motif lui-même, sans service de redirection au milieu. Les plateformes commerciales de « QR dynamique » passent par leur propre URL courte, et c'est exactement pour ça que leurs codes meurent en même temps que votre abonnement. Un code statique imprimé aujourd'hui se scanne encore dans vingt ans.

Pourquoi mon QR code Wi-Fi ne se connecte pas ?

En général, une de ces trois raisons banales. Le mot de passe ou le SSID contient une faute de frappe (la casse compte). Le type de sécurité ne correspond pas au routeur (choisissez WPA pour tout réseau WPA, WPA2 ou WPA3 personnel). Ou le réseau est en enterprise 802.1X, que le format Wi-Fi QR ne sait tout simplement pas décrire. Les caractères spéciaux ne sont pas le problème ici, puisque l'outil les échappe pour vous.

Combien de texte je peux mettre ?

Cet outil plafonne à la version 10, une grille 57x57, qui contient 271 octets au niveau L, 213 en M, 151 en Q et 119 en H. Ce plafond est voulu. Des versions plus grandes existent sur le papier, mais les codes denses deviennent franchement pénibles à scanner une fois imprimés en petit. Si votre contenu ne rentre pas, encodez plutôt une URL courte qui pointe vers le contenu long.

Quel niveau d'error correction choisir ?

Laissez sur M sauf raison particulière. Choisissez H quand un logo va couvrir une partie du code, ou quand il vit dans un endroit qui se salit ou se raye. Descendez à L seulement quand vous casez un long texte et que le code sera scanné sur un écran. Plus le niveau est élevé, plus la grille est dense, donc n'achetez pas une résistance dont vous n'avez pas besoin.