QR & codes
Machine-readable codes: QR, barcodes, and the subtitle formats players read.
Written for: Everyone else, quickly · Developers and designers
What this family is for
A code is a container, and what a reader does with it depends on the grammar inside. A QR symbol holds text, but a WIFI: string joins a network, a vCard adds a contact and a UPI link starts a payment; a barcode encodes a product number with a check digit that decides whether the scanner accepts it at all. Subtitle files work the same way — SRT, WebVTT and ASS/SSA all describe timed text, and a player that expects one format shows nothing when given another. These tools build or convert each format in the browser, so a Wi-Fi password, a contact card or a draft subtitle file never leaves your device.
QR, 1D barcode or subtitle file
These three formats are read by completely different hardware and software, and choosing wrong means the symbol is never read at all. A QR code is two-dimensional and carries arbitrary text — a URL, a Wi-Fi credential, a vCard, a payment link — and is scanned by a phone camera or a QR reader. A barcode is one-dimensional and carries a number: Code 128 for internal identifiers and shipping labels, EAN-13 for retail products, where the first digits identify a company prefix and the last is a check digit that must be correct or the scanner rejects it. A retail scanner reads an EAN-13 and nothing else; a phone camera reads a QR and generally not a 1D barcode.
Subtitles are a third, unrelated job in the same family: SRT, WebVTT and ASS/SSA are text formats that carry timed cues, and the differences are not cosmetic. WebVTT is what HTML5 video expects, SRT is what most desktop players and editors expect, and ASS/SSA carries styling that the other two cannot express. Converting between them preserves the cue timing and text; converting to SRT from ASS necessarily drops position and style information, because SRT has no field for it.
The shared property is that all three are parsed by machines with strict grammars, so escaping matters more than it looks. A QR payload that contains an unescaped semicolon inside a Wi-Fi password, an EAN-13 with a mistyped check digit, or an SRT file with an arrow written as a hyphen instead of `-->` will each fail silently — the reader says nothing, it just does not work.
| If you have… | Use | Because |
|---|---|---|
| A link, Wi-Fi login, contact card or payment a phone can scan | QR code generator | Builds the payload grammar for each case and escapes its delimiters |
| A product number a retail scanner can read | Barcode generator | EAN-13 with a computed check digit |
| An internal identifier or shipping label | Barcode generator (Code 128) | Compact alphanumeric encoding with no fixed length |
| Captions for an HTML5 video | Subtitle converter → WebVTT | WebVTT is the format the <track> element expects |
| Captions for a desktop player or an editor | Subtitle converter → SRT | The most widely accepted plain-text subtitle format |
| Styled or positioned captions | Subtitle converter → ASS/SSA | The only one of the three with style fields; converting away from it loses them |
3 tools in QR & codes
Common mistakes with these tools
- Putting a long URL in a QR code without shortening it — The largest QR symbol (version 40, at the lowest error correction) holds about 2,900 bytes, but density grows with the payload and older cameras struggle. A 200-character tracking URL produces a symbol that phones read more slowly than a short link would.
- Printing a QR code too small for its density — The rule of thumb is a module size of at least 0.4 mm; a dense code printed at 1 cm square has modules below what a camera can resolve. Increase the physical size, not the error correction, when scanning fails at close range.
- Typing an EAN-13 and getting the check digit wrong — The 13th digit is computed from the first 12, and a scanner validates it. Enter 12 digits and let the tool compute the check digit rather than copying thirteen digits from an invoice.
- Treating a 1D barcode as a QR code — They are different symbologies read by different scanners. A phone camera that scans QR codes usually cannot read an EAN-13, and a retail scanner cannot read a QR code.
- Assuming subtitle conversion keeps styling — ASS/SSA supports fonts, positions and colours; SRT and WebVTT do not. Converting ASS to SRT keeps the words and timing and silently drops everything visual — the result is valid and looks different.
- Saving WebVTT with a .srt extension — Players and browsers sniff the format from the content as well as the extension. A WebVTT file named .srt may work in a forgiving player and fail in a strict one; export the format the player actually lists.
Frequently asked questions
Will my Wi-Fi password end up on a server?
No. The payload is assembled and the symbol is drawn in your browser; nothing is sent anywhere. That is deliberate — a Wi-Fi QR code contains the network password, so it must never leave your device. The page also works offline once loaded.
Why did a scanner fail to join my Wi-Fi network?
Almost always because a character in the password or the network name was not escaped. This tool escapes \, ;, ,, : and " the way the WIFI: grammar requires, which is the usual cause of a code that scans but connects to nothing.
How much data fits in a QR code?
Up to about 2,900 bytes, but the more you put in, the denser the symbol becomes and the harder it is for an older camera to read. Keep a URL or a Wi-Fi payload short; for a vCard, the essential fields scan more reliably than a full address.
Should I use a higher error-correction level?
Higher correction (Q or H) lets the code survive a scuff or a logo over the middle, at the cost of a denser symbol. Level M is the usual default for a screen or a clean print; use H when the code may be damaged or partly covered.
Other tool families
- Scripts & numerals — Digits, writing systems and transliteration, converted losslessly. (7 tools)
- Encoding & Unicode — What the bytes and code points of your text actually are. (7 tools)
- Accents & diacritics — Strip the marks that break search, matching and filenames. (1 tools)
- Phonetic & symbol writing — Spell text in other symbolic systems: Morse, Braille, radio alphabet. (3 tools)
- Text utilities — Everyday clean-up: counting, case, whitespace, slugs and lines. (15 tools)
- Developer & data — Encode, format and generate the values developers pass between systems. (24 tools)
- Time & date — Timestamps and dates, converted without a timezone surprise. (4 tools)
- Converters & calculators — Unit, money and grade calculators that show the method, not just the answer. (14 tools)
- Colour — Move a colour between HEX, RGB and HSL without a design tool. (3 tools)
- Images — Resize, convert, compress, crop and inspect images without uploading them. (15 tools)
- Documents — Business paperwork — invoices, receipts — generated in the browser. (2 tools)
- CSS & design — Generate gradients, shadows, radii and shapes as copy-ready CSS. (4 tools)