What actually fits inside the symbol
Capacity depends on the character set you use. At the largest version and the lowest error-correction level a QR code holds 7,089 digits, 4,296 alphanumeric characters, or 2,953 bytes of arbitrary data. The alphanumeric mode is a restricted set — digits, uppercase letters, space and a handful of symbols — so lowercase text falls back to byte mode and takes more room per character.
Those ceilings are theoretical rather than practical. A symbol holding two thousand characters is 149 modules across, and resolving that many cells needs either a large print or a very good camera. Treat a few hundred characters as the working limit for anything that will be scanned in the field.
Error correction is a trade, not a free upgrade
Reed–Solomon error correction lets a code survive damage: level L recovers about 7% of the symbol, M 15%, Q 25% and H 30%. That is what allows scratched, smudged or partly covered codes to keep working, and it is why a logo can be dropped into the middle of a code without breaking it.
The recovery data occupies the same symbol, so raising the level either shrinks how much text you can store or pushes the code to a higher version with more modules. For a label that will live on a clean surface indoors, L or M is enough. For something destined for a workshop floor or outdoor equipment, the extra density of Q is worth it.
Where offline text codes earn their keep
Asset tags are the obvious case: a serial number, install date and model on the machine itself, readable in a basement with no signal. Warehouse bin labels work the same way, and so do the small placards on trail markers and utility cabinets where the whole point is that no server is involved.
The limitation is that the text cannot change. If the information is expected to be updated — a maintenance log rather than a serial number — encode an identifier and keep the changing part in your own system, rather than reprinting labels every time something moves.
What scanners do with plain text
A text code has no URI scheme, so there is nothing for the phone to open. Camera apps show the decoded string and offer to copy it or run a search; dedicated scanner apps usually add a share action. This is different from a URL code, which prompts to open a browser, and it is the behaviour you want when the content is a number rather than a destination.
Line breaks are preserved, so a two- or three-line label reads as written. Very long paragraphs technically work but end up displayed in a cramped notification-style panel, which is another argument for keeping the content short.