# QR Code to Text — Extract the Payload From Any QR Image

> Pull the raw text, link or data out of a QR code image, and check it before you act on it.

To convert a QR code to text, drop in the image, paste a screenshot or point your camera at the code — the payload is extracted in the page and shown as plain text you can copy. Because a QR code is opaque to a human eye, the decoded text is also checked structurally: whether a link is encrypted, whether the hostname is a punycode lookalike, and whether it hides behind a shortener.

**URL:** https://convertto.tech/t/qr-to-text
**Category:** QR & Barcodes (https://convertto.tech/c/qr-tools)
**Privacy:** Runs entirely in the browser; no upload
**Cost:** Free, no sign-up
**Last updated:** 2026-08-01

## Key facts

- **Privacy:** Camera and decoding run in the page — no image is uploaded
- **Input:** Drop, paste, choose several at once, or scan live
- **Safety:** Decoded links are checked structurally before you open them
- **Cost:** Free, unlimited, no sign-up

## What a QR code actually holds

A QR symbol stores a string of bytes, and nothing in the symbol says what those bytes mean. Everything a phone does on a scan comes from a prefix in the decoded text: `https://` opens a browser, `WIFI:` offers to join a network, `BEGIN:VCARD` offers to save a contact, `tel:` dials, `mailto:` composes, `otpauth://` adds a two-factor secret. Reading the raw string is the only way to see which of those you are being handed.

Capacity depends on the symbol version and the encoding mode. Version 1 is a 21 x 21 grid of modules, each version adds four modules per side, and version 40 reaches 177 x 177. Numeric mode packs digits tightly, alphanumeric mode covers digits, uppercase A to Z and a handful of punctuation characters, and byte mode carries arbitrary data, which is what a URL uses. At the largest version and the lightest error correction the ceiling is roughly seven thousand digits or a little under three thousand bytes. Real codes are far smaller, because a dense symbol needs a bigger print and a better camera.

## Error correction, and why a damaged code still reads

Every QR symbol carries Reed-Solomon error correction, which is why one with a logo stamped over the middle still scans. The level is chosen when the code is made, not when it is read: the decoder recovers it from the format information around the finder patterns.

| Level | Codewords recoverable | Choose it for |
| --- | --- | --- |
| L | About 7% | A clean screen, or a large well-printed sheet. |
| M | About 15% | The usual default for print. |
| Q | About 25% | Labels that get handled, or a small centre logo. |
| H | About 30% | Industrial surfaces, curved packaging, a large logo overlay. |

*Higher correction adds redundancy to the same payload, so the symbol needs more modules and prints denser at the same physical size.*

> **A decoded link is not a trusted link** — Nothing in a QR code is visible before it is scanned, which is why a sticker placed over a legitimate code works as an attack. The payload is shown here before anything is opened, together with whether the link is HTTPS, whether the hostname uses punycode that mimics Latin letters, and whether it hides behind a shortener.

## When a code will not decode

- The quiet zone has been cropped. A QR symbol needs a blank margin around the whole pattern, and a tight crop removes exactly the reference the decoder needs.
- The photo was taken at an angle. Perspective distortion is correctable up to a point, but shooting square to the code is faster than fighting it.
- The code is too small in frame. Fill more of the picture with the symbol so each module lands on several pixels.
- Contrast is inverted or washed out. Light modules on a dark ground read on some decoders and not others; glare from a glossy print defeats all of them.

For the other direction, the [QR code generator](https://convertto.tech/t/qr-code-generator) writes the same payload formats. Linear retail codes are a different symbology family and belong to the [barcode reader](https://convertto.tech/t/barcode-to-text).

## How to use

1. Select your image — the file stays on your device and is never uploaded.
2. Press Run, then download the result when it is ready.

## FAQ

### What text does a QR code actually hold?

Whatever was encoded, as a single string. A link is just text beginning with https://, and Wi-Fi credentials are text beginning with WIFI:. What makes your phone act on it is the prefix, which is why the raw string is worth reading.

### Can I decode several at once?

Yes — select or drop multiple images and each is decoded in turn, with the results kept in a list.

## Sources

- [QR code version and capacity tables](https://www.qrcode.com/en/about/version.html) — Denso Wave
- [ISO/IEC 18004: QR code bar code symbology specification](https://www.iso.org/standard/83389.html) — ISO/IEC

## Related tools

- [Barcode Reader](https://convertto.tech/t/barcode-to-text): Read a code from a photo, a screenshot or your camera, entirely in your browser.
- [Business Card QR to vCard](https://convertto.tech/t/business-card-to-vcard): Decode the QR code on a business card and save the contact as a .vcf file for any address book.
- [QR Code Reader](https://convertto.tech/t/qr-code-reader): Decode a QR code from an image or your camera, and check the link before you open it.
- [QR Code Generator](https://convertto.tech/t/qr-code-generator): Design QR codes with custom shapes, gradients and a logo, and check they will still scan.
- [vCard Generator](https://convertto.tech/t/vcard-generator): Build a contact card with several numbers and addresses, and get the .vcf plus a scannable QR.
- [PDF Text Extractor](https://convertto.tech/t/pdf-text-extractor): Pull all the text out of a PDF as plain text you can search, copy or reuse.
- [Email, URL & Number Extractor](https://convertto.tech/t/data-extractor): Pull emails, URLs, IP addresses, phone numbers or hashtags out of any text.
- [Barcode Generator](https://convertto.tech/t/barcode-generator): Generate scannable retail and logistics barcodes, with the check digit and print size checked as you type.
