Class PercentEscaper

java.lang.Object
io.opentelemetry.api.internal.PercentEscaper

public final class PercentEscaper extends Object
Note: This class is based on code from guava. It is comprised of code from three classes:

Escapes some set of Java characters using a UTF-8 based percent encoding scheme. The set of safe characters (those which remain unescaped) can be specified on construction.

This class is primarily used for creating URI escapers in UrlEscapers but can be used directly if required. While URI escapers impose specific semantics on which characters are considered 'safe', this class has a minimal set of restrictions.

When escaping a String, the following rules apply:

  • All specified safe characters remain unchanged.
  • If plusForSpace was specified, the space character " " is converted into a plus sign "+".
  • All other characters are converted into one or more bytes using UTF-8 encoding and each byte is then represented by the 3-character string "%XX", where "XX" is the two-digit, uppercase, hexadecimal representation of the byte value.

For performance reasons the only currently supported character encoding of this class is UTF-8.

Note: This escaper produces uppercase hexadecimal sequences.

This class is internal and is hence not for public use. Its APIs are unstable and can change at any time.

Since:
15.0
Author:
David Beaumont
  • Constructor Details

    • PercentEscaper

      public PercentEscaper()
  • Method Details

    • create

      public static PercentEscaper create()
      The default PercentEscaper which will *not* replace spaces with plus signs.
    • escape

      public String escape(String s)
      Escape the provided String, using percent-style URL Encoding.