QR codes are unreadable by design, which is exactly what makes them worth checking before you act on one. A code on a parking meter, a restaurant table or a poster gives no indication of where it leads until you have already gone there.
This reader decodes a code and shows you the contents as text. You see the destination before deciding whether to visit it.
Two ways to read a code
Upload or drag an image. Any screenshot, photograph or downloaded image containing a QR code. This is the option for a code you have received rather than one in front of you - in an email, a PDF, or a screenshot someone sent.
Use your camera. The video feed is scanned continuously and stops as soon as a code is recognised. This needs a secure connection, because browsers only grant camera access over HTTPS, and it needs your permission, which you can revoke at any time.
In both cases the decoding happens in your browser. The image is never uploaded, the camera stream never leaves your device, and no request is made to any server. The decoder library is fetched once from a CDN and then everything runs locally.
What QR codes actually contain
Most contain a URL, but not all. A code can hold plain text, contact details in vCard format, Wi-Fi network credentials, a calendar event, a phone number, an email with a pre-filled subject, or a payment string. The reader shows whatever is there as raw text, so you see the actual content rather than an interpretation of it.
When the content is a link, an open button appears. When it is anything else, you get the text and can decide what to do with it.
Why checking a code before scanning it matters
Malicious QR codes are a real and growing problem, largely because the attack is so cheap. A sticker printed with a different code, placed over the legitimate one on a parking meter or a restaurant table, costs almost nothing and is nearly impossible to spot. The usual payload is a convincing payment page.
Reading the code here first shows you the destination as text. The things to look for: a domain that does not match the organisation it claims to be, a URL shortener hiding the real destination, character substitutions such as rn in place of m, or a lookalike domain differing by one letter.
If a physical code looks like a sticker applied over something else, that alone is a reason not to scan it.
When a code will not read
Decoding needs reasonable image quality. A blurred photo, a code at a steep angle, poor lighting, glare across a printed surface, or an image scaled down too far will all fail. QR codes carry error correction and tolerate a surprising amount of damage, but not an unfocused photograph.
If a code will not read, try a straighter angle, better light, or a larger image before assuming the code itself is faulty.