Skip to content

Main content

URI Unreserved Percent Normalization Tool

Calculate uri unreserved percent normalization from explicit caller-supplied inputs.

Loading tool…

Description

Normalize one percent escape by decoding an unreserved ASCII character or uppercasing the preserved escape.

Web protocol data has several layers: a complete message or URL, individual fields or components, and the literal tokens within them. Delimiter presence, spelling, comparison rules, and parser normalization can affect results. A check of one component needs its stated scope before it can be used in a larger parser or policy decision.

Normalize one percent escape by decoding an unreserved ASCII character or uppercasing the preserved escape.

When to use this tool

Use URI Unreserved Percent Normalization when you need one stated URL, header, or protocol-component check in a diagnostic or parser workflow. Supply the input level specified below.

How to use the tool and how it works

  1. Enter token. Use the units and conventions below.
  2. Run the tool. Correct any format, range, or cross-field input error before interpreting the output.
  3. Read normalized, decoded. Inspect decoded before interpreting the associated values.

Require exactly one percent sign followed by two hexadecimal digits. Decode its byte only when it is an ASCII letter, digit, hyphen, dot, underscore, or tilde; otherwise preserve the escape with uppercase hex digits. Return normalized and decoded.1

The URI unreserved set consists of ASCII letters, digits, hyphen, dot, underscore, and tilde.2

Input fieldMeaning and unitsAccepted input
tokenTokenRequired. Text; maximum UTF-16 length 8192.
Output fieldInterpretationReturned shape
normalizedNormalizedRequired. Text; maximum UTF-16 length 8192.
decodedDecodedRequired. Boolean.
json
{
  "input": {
    "token": "%7e"
  },
  "output": {
    "normalized": "~",
    "decoded": true
  }
}

Limitations and assumptions

  • This handles one escape token rather than an entire URI or UTF-8 sequence. Reserved characters remain escaped and the operation does not establish URL validity or resource equivalence.
  • The field tables state structural bounds; the mechanics also specify cross-field constraints. Malformed inputs and unsupported domains cause errors. A successful false flag, empty branch value, or zero placeholder has the meaning stated above and is distinct from an input error.

Alternative or Complementary methods

Use a complete URL or header parser when the task involves an entire field or message. Test actual browser, server, or cache behavior separately when a security or protocol decision depends on more than this component.

References

  1. Calculation and input contract: web/uri-unreserved-percent-normalization — tool.io

  2. RFC 3986, 2.3: Unreserved Characters — IETF

Similar or alternative tools