QR Code Generator
Turn a URL, a wifi password or any text into a QR code, entirely in your browser.
Runs entirely in your browser. Nothing is uploaded, logged or stored.
Type something and get a QR code, as an SVG you can copy or download and print at any size without it going blurry.
It is generated in your browser. That matters more here than on most tools: the single commonest thing anybody puts in a QR code is a wifi password, and after that a phone number, a home address or a payment link. None of it reaches a server here, and there is nothing to log because nothing is sent.
How it works
The encoder follows ISO/IEC 18004 and is written out on this site rather than loaded from anywhere, because there is no external script on these pages at all.
It picks the narrowest of the three encoding modes your text fits in. Digits alone pack three characters into ten bits; capital letters, digits and a handful of symbols pack two into eleven; anything else is eight bits per UTF-8 byte. That is why a URL in capitals produces a visibly smaller code than the same URL in lower case.
Then it picks the smallest of the forty symbol sizes that holds the data at the error correction level you chose, adds Reed-Solomon parity, and interleaves the result so that damage in one place is spread across every block rather than destroying one of them.
Finally it tries all eight of the standard mask patterns and keeps the one that scores lowest on the standard's own penalty rules — fewest long runs of one colour, fewest shapes a reader might mistake for a corner marker, and the most even balance of dark and light.
Frequently asked questions
Which error correction level should I use?
Medium unless you have a reason. Higher levels let a damaged or partly covered code still be read, but they take the space out of the same symbol, so the same text needs a bigger, denser code. Use High if the code will be printed small, outdoors, on something that creases, or with a logo over the middle of it.
How do I make a QR code for my wifi?
Use the format WIFI:T:WPA;S:NetworkName;P:password;; as the text — that is the string phones understand. Since this page runs in your browser, the password stays on your machine; it is worth being careful about which site you paste a wifi password into.
Why is the code bigger when I use lower case?
Because lower case is not in the compact alphabet. Capital letters, digits, space and eight symbols encode two characters per eleven bits; everything else falls back to eight bits per byte. A domain name written in capitals often drops a whole symbol version, and URLs are case-insensitive in the host part, so it is a free saving.
Can I put a logo in the middle?
Not on this page, but you can do it yourself with the SVG. Generate at High correction, then cover no more than about a fifth of the width in the centre. Test the result with a real phone before printing anything: the error correction is what makes it work, and there is no warning when you have taken too much.
Why an SVG rather than a PNG?
Because a QR code is a grid of squares, which is exactly what vector graphics are good at. An SVG prints sharp at any size, from a business card to a poster, and it is a few kilobytes. Any image editor will turn it into a PNG if you need one.
Does the white border matter?
Yes, and it is included. The standard calls it the quiet zone and asks for four modules of clear space on every side; readers use it to tell where the symbol ends. A code cropped tight to its edge is the most common reason a printed one will not scan.
Good to know
- Everything happens in your browser. What you type is not uploaded, not logged and not stored.
- A QR code carries no security of any kind. Anything encoded in one can be read by anybody who photographs it, so a code is a convenient way to type something, not a way to hide it.