Plain text

Free Plain Text QR Code Generator

Encode any text - instructions, an address, a poem, a recipe - directly into a QR code. No URL, and no internet needed to read it once scanned. Perfect for instructions on physical objects, custom messages, secret notes, and offline information.

  • Free static QR codes - work forever
  • Generated in your browser - no signup required
  • Reads offline · no internet needed to scan

Type your text on the right →

Generate your plain text QR code

0 / 300 characters used
Enter some text
Enter some text to preview

Want colours, frames, or logos? Use the full generator →

When plain text beats a URL

Most QR generators only make URL codes, but a plain-text code is uniquely flexible because the words are encoded into the pattern itself. There is no link, no server, and no internet required - the scanner reads the text straight off the code and the phone displays it. That single property makes it the right choice whenever the information must live on the object and keep working with no connection.

Concretely, text wins over a URL for care instructions on a garment, an address someone needs to paste into navigation, a gift-card code or secret message, a poem or quote on a wedding invitation, a pet ID tag, lost-and-found contact details, or compliance text that has to be physically present. In every one of those, a URL would add a dependency - a hosted page, a working connection, a server that still exists years later - that the content does not need and should not have. If the information will outlive any web page and must work in a basement, a field, or ten years from now, it belongs in the code, not behind a link. Where the content genuinely changes or is long, a URL code pointing at a hosted page is the better tool.

Practical plain-text examples

Care instructions on clothing

Printed on a woven label or hangtag, a text code carries full, readable washing and care instructions instead of a row of tiny illegible symbols. It is static and offline, so it works for the entire life of the garment with nothing to maintain.

Address on signage or cards

A code containing "123 Maple Street, Toronto, ON M5V 3A8" lets someone scan and paste the address straight into Apple Maps or Google Maps. It works offline if all they need is the address itself; for a precise pin, a location code is the better fit.

Pet ID and lost-and-found tags

"If found, call [phone]. Name: [pet]. Allergies: [list]" on a pet tag means anyone with a phone has the owner's details, with no app and no signal needed. The same idea on a sticker for a laptop, water bottle, or umbrella is cheap insurance against losing things.

Greeting cards and special occasions

A poem on a wedding invitation, a personal message in a birthday card, lyrics in a get-well card - the code is a private "bonus" alongside the visible text, and because it is offline it works the moment it is opened, anywhere.

Compliance text and scavenger hunts

"Warranty void if seal broken" or a safety-recall contact on packaging replaces a wall of fine print; "You found clue #3 - the answer is…" in an escape room or scavenger hunt works with no Wi-Fi in the building. Offline reliability is the whole point in both.

The 300-character limit

This generator allows up to 300 characters per text code. The limit is deliberate, not arbitrary: a QR pattern grows denser as you add characters, and past roughly 300 the modules get small enough that ordinary print sizes and poor lighting start producing failed scans. Three hundred characters is the practical sweet spot between useful and reliably scannable on a printed surface.

In rough terms, 300 characters is about 50 words, three or four sentences, or one short paragraph. For anything longer - an essay, a long story, a full document - host it online and use a URL code instead; cramming it into a text code only produces a pattern nobody can scan, which helps no one.

Designing and printing text codes

Text codes print denser than URL codes of the same character count, because text carries more encoding overhead than a compact URL. Size for that:

  • 200–300 characters: print at least 3 cm × 3 cm to scan reliably.
  • 50–100 characters: 2 cm × 2 cm is fine.
  • Always: dark modules on a light background, a clear quiet zone, and a printed test scan before producing at scale.

The shorter the text, the smaller and more robust the code, so ruthless editing of the message is the single most effective thing you can do for scannability - every word removed makes the printed code easier to read in bad light.

How users see scanned text

Scanned text is displayed, not acted on, and the presentation differs by platform. iOS shows the text in a banner and lets the user copy it; Android shows it in a popup with copy, search, and share options; dedicated reader apps display it on screen with actions. Nothing opens automatically - the user decides what to do next.

That matters for how you write the text. If the point is an address, expect the user to copy it and paste it into a maps app, so format it as a clean, paste-ready address with nothing decorative around it. If it is an instruction, make it read correctly as a standalone block, because that block is exactly what the person will see with no surrounding context.

Common problems and fixes

"The code is hard to scan"

Almost always too much text for the printed size. Shorten the message first, then increase the print size, then improve contrast - in that order, because shortening fixes the root cause while the others only compensate for it.

"Accents or special characters look wrong"

Most modern readers handle UTF-8, so French accents and emojis usually survive, but support is not universal. Test your exact text on the phones your audience actually uses; if it is unreliable, simplify the characters rather than hoping.

"Some Androids open a browser instead of showing text"

A quirk of certain Android readers that try to treat any scan as a link. It is the reader's behaviour, not a fault in your code; most users simply read or copy the text and move on. Keeping the text plainly non-URL-like reduces it.

"Can I include line breaks?"

Yes - the generator encodes real newlines, and they display correctly on iOS and modern Android. For maximum compatibility with older readers, a separator like " / " between items is the safest choice.

"Does it really work with no internet?"

Yes. The text is in the pattern itself - no server, no link, no app beyond a built-in QR reader. You can prove it by switching the phone to airplane mode and scanning: the text still appears.

Text code or URL code: a decision rule

The two are easy to confuse, and choosing wrong wastes a reprint. A short rule decides it every time, without having to reason it out afresh:

  • Will the content ever change? If yes, it is a URL code pointing at a page you can edit - never a text code, because changing baked-in text means reprinting everything.
  • Must it work with no internet? If yes, it is a text code. A URL code is useless in a cellular dead spot, a remote site, or an offline building; a text code is not.
  • Is it longer than a short paragraph? If yes, host it and use a URL code. Past ~300 characters a text code becomes unscannable at print size.
  • Does it need to outlive any web infrastructure? If it must still work in ten years regardless of whether any server exists, that is the text code's defining strength.

In practice the split is clean: fixed, short, must-work-offline, must-last content is a text code; changeable, long, or connection-dependent content is a URL code. When both seem to fit, ask which failure is worse - a dead link in five years, or a reprint when the wording changes - and the answer picks the tool.

What not to put in a text code

A text code's strengths - offline, permanent, no server - are also its risk. Because the words are in the pattern itself, the code is the data: anyone who photographs it has the contents permanently, and there is no link to disable, no page to take down, and no way to revoke it after the fact. That is fine for care instructions or a poem and dangerous for anything sensitive.

So keep certain things out of a printed, public text code: a password or Wi-Fi key you rotate (it cannot be changed once printed, and a dedicated Wi-Fi code is the right tool anyway); personal information about someone who has not consented to it being permanently public; one-time codes or secrets of real value; and anything you might later need to retract. The safe test mirrors the rule for any reproducible symbol - assume a stranger will photograph it and keep it forever. If that thought is uncomfortable, the content does not belong in a text code, and either a URL behind authentication or no code at all is the correct answer.

Static or dynamic: which does a text code need?

A static text code - what this free generator produces - has the words baked into the pattern. It works forever, offline, with no account; you reprint only if the text changes. For fixed content like care labels, pet tags, or a printed message, that permanence is exactly the feature.

If the content needs to change over time, a text code is the wrong tool regardless of plan - host the text on a page and use a URL code, optionally a dynamic one whose destination you can edit. A dynamic plain-text code would just be a URL code in disguise, so reach for the right tool instead.

Plain text QR code FAQ

Does the plain text QR code expire?

No. The text is encoded directly into the pattern itself - there is no link, no server, and nothing to expire. A printed plain-text code keeps working for the life of whatever it is printed on, whether that is a care label, a pet tag, or a greeting card, indefinitely.

Do I need internet to scan a plain text QR code?

No. Because the text lives in the pattern rather than behind a link, scanning works completely offline - the phone reads the characters straight from the code and displays them. This is the main reason plain text beats a URL for things like instructions on an object or a message that must work with no connection.

What's the maximum length of text I can encode?

This generator allows up to 300 characters - roughly 50 words or a short paragraph. The limit is deliberate: past that point the pattern becomes dense enough that small print sizes and poor lighting start causing scan failures. For anything longer, host the content on a page and use a URL code instead.

Can I include special characters like accents or emojis?

Usually yes - most modern QR readers handle UTF-8, so French accents, other scripts, and emojis generally survive. Reader support is not perfectly universal, though, so if your text relies on special characters, test the printed code on the actual phones your audience uses before producing it at scale.

Will it work on older phones?

On any phone with a built-in QR reader - every recent iPhone and Android - yes. Some older Android cameras may treat the text oddly or hand it to a browser, which is a quirk of that reader rather than a fault in the code. Keeping the text short maximises compatibility across old and new devices.

Can I update the text without changing the QR code?

Not with a static text code - the words are baked into the pattern, so changing them means generating and reprinting. If the content needs to change over time, the better approach is a URL code pointing to a hosted text page you can edit; a dynamic QR (a paid feature) supports that with editable destinations.

Is my text sent to qrcodegenerator.ca's servers?

No. The QR code is generated entirely in your browser using JavaScript - the text you enter is never transmitted to us or anyone else. You can confirm this by opening your browser's network tab while generating, or by disconnecting from the internet: the code still generates. This is core to how we stay PIPEDA and Quebec Law 25 compliant.