Read charset, language and value
02An extended value has a required character-encoding label, an optional language tag and encoded value data, separated by two apostrophes.
The unquoted extended token is valid syntax. A separately illustrated double-quoted version is not valid ext-value; parser tolerance does not change the grammar.
Source for this drawing: RFC 8187 · Read RFC section 3.2.1 ↗
New to this? Start hereA quick picture + helpful background
A message needs an address.
Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
- Charset
- A label for a character encoding, here required UTF-8 for producers.
- Language tag
- An optional label such as en for English; it does not translate the value.
- Token
- An unquoted sequence following the allowed syntax, not an arbitrary quoted string.
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
The charset is required even when the language tag is empty.
- The form is charset'language'value-chars. Character-encoding names and language tags are case-insensitive; language information may be empty, while charset cannot be omitted.
- Producers MUST use UTF-8. Recipients implementing RFC 8187 MUST support UTF-8. Other charset tokens in the grammar are reserved for future extension; they are not an unrestricted choice for today’s producer.
- An extended value is an unquoted token. Wrapping it in a double-quoted string is invalid under this profile, even if a generic parser happens to accept it. Ordinary parameters can have their own quoted-string rules.
The sample title* follows the fictional adopting field from §4. Apostrophes delimit three parts; they are not quote marks around the whole value. A language tag describes the text’s language; it does not translate the text, select its charset or authenticate its author.
Read the RFC section ↗