Skip to content

How to decode a QR code and see what's actually inside it

How to read a QR code from an image, screenshot, or camera — what kinds of data come out, and how to check an unfamiliar code is safe before you act on it.

By Muhammad Tahir5 min readqrexplainer

Most of the time you point your phone at a QR code, it opens whatever's inside, and you never see the raw content. That's fine until you want to verify a code before trusting it — or you've got a code trapped in a screenshot, a PDF, or a photo with no camera in sight. Decoding it yourself is the answer, and it's quick once you know the options.

This is the companion to how QR codes work, which explains how the squares encode data. Here we go the other direction: getting the data back out.

Three ways to decode a code

There are really only three input paths, and which one you need depends on where the code lives:

  • From an uploaded image or screenshot. The code is already a file — a saved photo, a screenshot of an email, a page in a PDF you exported as an image. You feed the image to a decoder and it finds the code and reads it. This is the case a phone camera can't easily handle, and it's the most common reason people reach for a decoder on a computer.
  • From your live camera. The classic case — point a lens at a physical code. Browser-based decoders can use your webcam to do this without any app, which is handy on a laptop.
  • From a code you just generated. Before you print a few thousand flyers, decode your own code to confirm it points exactly where you intended. A one-character typo in a URL is invisible in the pattern but obvious once you pull the text back out.

The QR Code Decoder handles all three — upload, screenshot, or camera — and runs entirely in your browser, so the image never gets uploaded to a server.

What comes out: the data types

A QR code is just text inside, but scanners recognize certain structured formats and treat them specially. When you decode one, you'll get back one of these:

  • A URL — by far the most common. This is the type to be most careful with, because acting on it means visiting a site (more on safety below).
  • Plain text — a note, a code, a serial number. Nothing happens automatically; it's just characters.
  • Wi-Fi credentials — a specially formatted string like WIFI:S:NetworkName;T:WPA;P:password;; holding the network name, security type, and password. A phone offers to join; a decoder shows you the password in plain text, which is the easy way to recover a guest-network password someone printed on a card.
  • A vCard or MeCard — a contact card with name, phone, email, company, and address packed into labelled fields.
  • Other actions — phone numbers (tel:), email addresses (mailto:), SMS messages, calendar events, and geo-coordinates each have their own prefix that tells the scanner what to offer.

Decoding reveals the raw string, which is exactly why it's useful for verification: you see the literal tel: number or the full URL, not just the friendly action your phone would have taken.

Why decode instead of just scanning?

Three practical reasons come up again and again:

  1. The code is in a file, not the real world. You can't point a camera at a QR code that's embedded in a PDF invoice or a screenshot someone sent you. Uploading the image is the only way.
  2. You want to verify before you trust. Scanning acts on the code immediately — it opens the link, joins the network. Decoding just shows you the content first, which is the safe order of operations for any code you didn't create.
  3. You're recovering data, not following it. Pulling a Wi-Fi password or a contact's details out as text is faster than joining the network and digging through settings.

Is it safe to scan an unknown QR code?

Mostly the risk isn't the code itself — it's where the code sends you. A QR code can't run software on your phone; it can only hand over text. But that text is usually a URL, and a malicious one can point to a phishing page that imitates a login screen, or to a payment page with the recipient swapped. This even has a name: "quishing" (QR phishing), and it shows up on fake parking meters, tampered restaurant menus, and stickers slapped over legitimate codes.

A sensible habit for any code you didn't print yourself:

  • Decode before you act. Read the raw URL with a decoder and look at the actual domain. your-bank.com and your-bank.secure-login.co are very different destinations.
  • Be suspicious of stickers. A QR code on a sticker placed over another one — on a parking meter, a poster, a menu — is a classic tampering pattern.
  • Never enter credentials or payment details on a page you reached only via an unexpected QR code. Navigate to the real site yourself instead.
  • Watch for Wi-Fi codes from untrusted sources, since joining a hostile network is its own risk.

Decoding first turns a blind "tap and hope" into an informed decision — you see precisely where a code leads before anything happens.

Verifying your own codes before print

If you generate codes, decoding is a release check. Before committing a design to print:

  • Decode the final exported image (not just the preview) to confirm the payload is exactly right — no truncation, no stray characters, the correct URL.
  • If you dropped a logo into the center, decode it to confirm the error correction still recovers the data with the logo covering part of the pattern.
  • Test the printed proof from a realistic distance and on more than one phone.

You can generate with the QR Code Generator and round-trip the result through the QR Code Decoder to be certain the code you ship reads back exactly what you put in.

The short version

Decoding a QR code means reading the text back out — from an uploaded image, a screenshot, or your camera — instead of letting your phone act on it blind. It's the right tool for codes stuck in files, for recovering Wi-Fi passwords and contact details as plain text, for verifying your own codes before printing, and above all for checking that an unfamiliar code leads somewhere you actually trust before you tap through.