Unicode scalar value (source code)

= 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.