liveBook · Manning

UAX #31

As explained in Modern C, Third Edition

UAX #31 is a Unicode Standard Annex that specifies rules for identifying and using Unicode characters in identifiers and syntax.

long année = 1990L; uses Unicode letters directly in a C identifier, whereas escaped forms such as \u00E9 provide a portable intermediate representation. section 9.3

UAX #31 defines Unicode rules for identifiers and syntax. C23 refers to it when specifying allowed identifier characters and addresses equivalent character sequences through Normalization Form C. section 9.3

Canonical composition

The sequence é can decompose as e plus an acute accent and recompose as é: \u00E9 → \u0065\u0301 → \u00E9. Form C also maps equivalent representations such as the Angstrom sign to Å.

Compatibility of Greek-derived signs

Normalization likewise maps the Ohm sign to the Greek capital omega: Ω → Ω → Ω and Ω → Ω → Ω.

How Modern C, Third Edition covers it

How deep it goes
Explains normalization through decomposition and recomposition examples, without detailing the complete identifier grammar.
Examples
Uses accented French identifiers, escaped source forms, Hangul, Angstrom representations, and the Ohm sign.
What you can do after
Evaluate equivalent Unicode identifier spellings and understand why canonical normalization supports portability.
How it connects
Connects Unicode identifiers with C23, Unicode code points, and Normalization Form C.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Modern C, Third Edition. The section links point to the parts of the book it draws on.