Random Unicode Noncharacter Generator
Choose one of the 66 Unicode noncharacter code points using injected randomness; noncharacters are valid code points reserved for internal use and are not interchange characters.
Description
Generate one of the 66 permanently reserved Unicode noncharacters as a text string.
Unicode noncharacters are permanently reserved for internal use and have no assigned abstract-character identity. They are still valid scalar values with well-formed UTF encodings. A string containing one is not automatically malformed Unicode.1
This generator samples U+FDD0–U+FDEF and the final two code points of each plane, from U+FFFE and U+FFFF through U+10FFFE and U+10FFFF. Output value contains one selected code point; supplementary results occupy two UTF-16 code units.
When to use Random Unicode Noncharacter Generator
Use it to test Unicode preservation, internal sentinel handling, or the difference between encoding validity and an application’s accepted character policy.
How to use Random Unicode Noncharacter Generator and understand its results
- Run with no input fields, using {} in an API request.
- Identify value by its U+ code point or escaped string representation rather than relying on a visible glyph.
- Pass it through the component under test and check preservation or documented application handling. Keep the fixture identifiable as a noncharacter.
offset = floor(randomDraw × 66) The implementation walks the inclusive noncharacter ranges in stored order and converts the selected code point to a string.
The contiguous first range contributes 32 choices, and the 17 plane-ending pairs contribute another 34. A uniform source assigns probability 1/66 to each code point rather than equal probability to each range.
{
"input": {},
"randomDraw": 0.25,
"output": {
"value": "\ufde0"
}
} Draw zero returns U+FDD0; a draw just below one returns U+10FFFF. The generator never returns a surrogate code point. Random draws outside [0, 1) or nonfinite draws are rejected.
Limitations and assumptions
The default source is Math.random; no seed input or cryptographic entropy guarantee is provided. Repeated runs may select the same result, and the distribution depends on the random source.
Noncharacters do not provide a visible alphabet, standardized meaning, or ordinary text content. Applications may impose their own acceptance policies even when encoding is well formed.
Alternative or Complementary methods
Private-use code points serve a separate use case where users agree on character meanings. Bidirectional controls are assigned formatting characters and test display-order behavior instead.
References
-
Private-Use Characters, Noncharacters and Sentinels FAQ: Noncharacters — Unicode Consortium
Similar or alternative tools
- Unicode Private-Use Character Generator
Sample code points whose character meanings may be defined by private agreement.
- Unicode Bidirectional Control Character Generator
Sample assigned controls that affect bidirectional text layout.