Text Record
An NDEF record containing UTF-8 or UTF-16 encoded text with a language code. Used for human-readable messages, notes, and multi-language content on NFC tags.
What Is an NDEF Text Record?
An NDEF text record (TNF 0x01, Well-Known Type "T") stores human-readable text content along with a language code identifier. While URI records are more common for action-triggering tags, text records are essential for informational tags, multilingual smart posters, and application-specific text data.
Payload Format
[Status Byte: 1 byte] [Language Code: N bytes] [Text: remaining bytes]
Status Byte: | Bit | Description | |-----|-------------| | 7 | UTF flag: 0 = UTF-8, 1 = UTF-16 | | 6 | Reserved (must be 0) | | 5-0 | Language code length (0-63) |
Language Code: IANA language tag ("en", "fr", "ja", "ko").
Text Content: Encoded in UTF-8 or UTF-16 as indicated by the status byte.
Encoding Example
Storing "Hello" in English: status byte 0x02 (UTF-8, lang length 2) + "en" (2 bytes) + "Hello" (5 bytes) = 8 bytes total payload.
UTF-8 vs UTF-16
UTF-8 is recommended for most applications — 1 byte per ASCII character. UTF-16 is preferable only when text is predominantly CJK characters, where it is more efficient.
Multilingual Tags
Multiple text records with different language codes in a single NDEF message:
Record 1: "Hello, World!" (lang: "en")
Record 2: "Bonjour le monde!" (lang: "fr")
However, not all phones handle multilingual selection gracefully. For reliable multilingual experiences, consider URI records pointing to a language-aware web page.
Use Cases
- Product information: Museum exhibits, retail products display descriptive text when tapped.
- NDEF record combining URI with title and action metadata" data-category="NDEF">Smart poster titles: Human-readable title within Smart Poster records.
- Configuration data: IoT devices read text records with configuration strings.
- Debug and diagnostics: Development tags with firmware version strings.
Limitations
Text records are plain text only (no HTML or formatting), do not trigger automatic actions (unlike URI records), and consume user memory quickly when multilingual (NTAG 213 has only 144 bytes).
Related Terms
Related Content
How to Read and Write NFC Tags
Getting StartedNFC for Beginners: Your First Project
Getting StartedFlutter NFC Development Guide
Programming…debugPrint('URI: $uri'); return; } // Text record: TNF = 0x01, type = [0x54] if (record.typeNameFormat ==…
NDEF Specification Deep Dive
Advanced…— saving 8 bytes vs storing the full string. ndef-text record (type T , 0x54): Stores human-readable text with a…
NFC Tag Encoding Best Practices
Troubleshooting…Type Avoid Launch URL URI record (TNF 0x01, type U ) Text record with URL string Display text Text record (TNF 0x01, type T…
NFC App UX Design Patterns
Troubleshooting…Link your app handles - The notification title is the NDEF Text record content or domain name - Deep link routing must work…
NFC with Apple Shortcuts
Platform Integrations…iPhone: The system reads the tag's ndef payload (URI or Text record) If a Shortcuts Personal Automation matches the tag's UID…
NFC with Tasker for Android
Platform Integrations…tag, or paste a specific tag UID Content : match on NDEF text record value (optional) Any Tag : check this to fire on any tag…
Frequently Asked Questions
The NFC glossary is a comprehensive reference of technical terms, acronyms, and concepts used in Near Field Communication technology. It is designed for developers, product managers, and engineers who work with NFC and need clear definitions of terms like NDEF, APDU, anti-collision, and ISO 14443.
Each glossary term is cross-referenced with related NFC chips, standards, and other terms. For example, the term 'AES-128' links to chips that support AES encryption (NTAG 424 DNA, DESFire EV2/EV3), and the term 'ISO 14443' links to all chips compliant with that standard.
Yes. NFCFYI provides glossary definitions in 15 languages including English, Korean, Japanese, Chinese, Spanish, Portuguese, Hindi, Arabic, French, Russian, German, Turkish, Vietnamese, Indonesian, and Thai. Use the language selector in the header to switch languages.