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

  1. Run with no input fields, using {} in an API request.
  2. Identify value by its U+ code point or escaped string representation rather than relying on a visible glyph.
  3. 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.

json
{
  "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

  1. Private-Use Characters, Noncharacters and Sentinels FAQ: Noncharacters — Unicode Consortium

Similar or alternative tools

Don't forget to set a bookmark for tool.io!
Privacy | Imprint | Cookies