Encodes your actual string and reports the version, module count and remaining capacity for each error correction level
| Error correction | Fits | Version | Modules per side | Characters still available |
|---|
The version is the size of the symbol, numbered 1 to 40. Version 1 is 21x21 modules and each step adds 4 modules per side, so version 40 is 177x177. More data raises the version automatically. A higher version means smaller modules, so at the same printed size the code becomes harder to scan. For business cards and flyers, keeping the version low is the safer choice.
This is roughly how much of the code can be dirty or missing and still be recovered: L is about 7%, M about 15%, Q about 25% and H about 30%. The correction data takes up room, so a higher level leaves less space for your content and the same string may need a larger version. Choose Q or H for outdoor signage and print that gets dirty, and L or M for on-screen use.
A QR code switches encoding mode based on the content. Digits use about 3.33 bits per character, uppercase alphanumeric about 5.5 bits, and everything else (lowercase, symbols, non-Latin text) uses 8 bits or more per character. So 100 digits and 100 characters of Japanese text differ by almost a factor of three in data size. That is why "how many characters fit in a QR code" has no single answer.
It depends on the character types (digits only, uppercase alphanumeric, or anything else including non-Latin text) and on the error correction level. The theoretical maximum is 7089 characters for digits only at level L, but only about 1817 characters when the content is encoded in kanji mode. This tool encodes your actual string and reports how many more characters still fit.
The version is the size of the symbol, numbered 1 to 40. Version 1 is 21x21 modules, and each step adds 4 modules to each side, so version 40 is 177x177. More data raises the version automatically, which makes each module smaller and requires a larger print size.
No. Encoding and measurement run entirely in your browser with JavaScript. Nothing is sent to a server.