= Unicode scalar value
A <Unicode scalar value> is a <Unicode> <code point> other than a surrogate: its numerical value is in `U+0000`–`U+D7FF` or `U+E000`–`U+10FFFF`. Unassigned <code points> and noncharacters in these ranges are still <Unicode scalar values>; assignment to a written character is a separate property.<The Unicode Standard Version 17 Core Specification>[D76 and §3.8, Surrogates]{ref}
For example, `U+0041` and `U+1F600` are <Unicode scalar values>, while `U+D800` is not. In <UTF-16>, a surrogate pair consists of two <code units> encoding one <Unicode scalar value> above `U+FFFF`. Treating either half as an independent character loses that relationship.
Back to article page