Skip to content

veracode-research/java-encoders

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java Encoders

The objective of this document is to summarize how the most common Java encoders behave with different one character input. Each library tested is handled as a pluggable endpoint that will receive the list of characters to evaluate and returns the converted list of characters. These details are then included in the final result in form of printable HTML table.

Methodology

The set of input that were considered relevant to be encoded are:

                0x000A, // LF - Line feed
                0x000B, // VT - Vertical Tab
                0x000C, // FF - Form feed
                0x000D, // CR -  Carriage Return
                0x0085, // NEL - Next line
                0x008B, // Partial line forward
                0x008D, // Reverse line feed
                0x2028, // LS - Line separator
                0x2029, // PS - Paragraph separator
                '"',
                '\'',
                '<',
                '>',
                ':',
                ';',
                '\\',
                '&',
                '/',
                '=',
                '(',
                ')',
                '[',
                '{',
                '}',
                '#',
                '`',

where the first subset between 0x000A to 0x2029 are specifically considered relevant for CRLF injection and as such connected to CWE 93, 113 and 117. These set of characters was created after taking into consideration also the following references: Visual Studio Docs - Encodings and line endings CODING HORROR - The Great Newline Schism

The characters 0x0085, // NEL - Next line 0x008B, // Partial line forward 0x008D, // Reverse line feed where included to have an extended view on the behaviour of the reviewed methods on uncommon characters that in some context can be considered as introducing a new line. 0x0085(NEL - Next line) is considered as new line in Visual Studio, while 0x008B (Partial line forward) and 0x008D (Reverse line feed) are usually seen in old printers manuals and often considered as simple white space.

The remaining list of characters were considered relevant for the risk of Cross Site scripting (CWE 80).

Rendered Encoding. generated folder

The folder generated contains a list of output generated by each method in HTML format

Note:

  • ~unchgd identifies values that were not changed by the tested method
  • EMPTY identifies when the tested method returned an empty string when handling the input character

Libraries

org.springframework.web.util.UriUtils

Spring-web defines a list of methods in the abstract class org.springframework.web.util.UriUtils that can be used to perform URI encoding and decoding based on RFC 3986.

These methods implement an allow list approach to identify a character that is part of the allowed set for the specified encoding. All the characters that are outside the allowed set are represented using Percent-Encoding, % followed by the two hexadecimal digits representing that octet's numeric value (for example: %20 for the space character in the US-ASCII encoding).

Encoded Output

Value encode (UTF-8) encodeAuthority (UTF-8) encodeFragment (UTF-8) encodeHost (UTF-8) encodePath (UTF-8)
[0x000A] - LINE FEED (LF) %0A %0A %0A %0A %0A
[0x000B] - LINE TABULATION %0B %0B %0B %0B %0B
[0x000C] - FORM FEED (FF) %0C %0C %0C %0C %0C
[0x000D] - CARRIAGE RETURN (CR) %0D %0D %0D %0D %0D
[0x0085] - NEXT LINE (NEL) %C2%85 %C2%85 %C2%85 %C2%85 %C2%85
[0x008B] - PARTIAL LINE FORWARD %C2%8B %C2%8B %C2%8B %C2%8B %C2%8B
[0x008D] - REVERSE LINE FEED %C2%8D %C2%8D %C2%8D %C2%8D %C2%8D
[0x2028] - LINE SEPARATOR %E2%80%A8 %E2%80%A8 %E2%80%A8 %E2%80%A8 %E2%80%A8
[0x2029] - PARAGRAPH SEPARATOR %E2%80%A9 %E2%80%A9 %E2%80%A9 %E2%80%A9 %E2%80%A9
[0x005C] - \ %5C %5C %5C %5C %5C
[0x0027] - ' %27 ' ~unchgd ' ~unchgd ' ~unchgd ' ~unchgd
[0x0022] - " %22 %22 %22 %22 %22
[0x003C] - < %3C %3C %3C %3C %3C
[0x003E] - > %3E %3E %3E %3E %3E
[0x003A] - : %3A : ~unchgd : ~unchgd %3A : ~unchgd
[0x003B] - ; %3B ; ~unchgd ; ~unchgd ; ~unchgd ; ~unchgd
[0x0026] - & %26 & ~unchgd & ~unchgd & ~unchgd & ~unchgd
[0x002F] - / %2F %2F / ~unchgd %2F / ~unchgd
[0x003D] - = %3D = ~unchgd = ~unchgd = ~unchgd = ~unchgd
[0x0028] - ( %28 ( ~unchgd ( ~unchgd ( ~unchgd ( ~unchgd
[0x0029] - ) %29 ) ~unchgd ) ~unchgd ) ~unchgd ) ~unchgd
[0x005B] - [ %5B %5B %5B %5B %5B
[0x007B] - { %7B %7B %7B %7B %7B
[0x007D] - } %7D %7D %7D %7D %7D
[0x0023] - # %23 %23 %23 %23 %23
[0x0060] - ` %60 %60 %60 %60 %60
[0x0024] - $ %24 $ ~unchgd $ ~unchgd $ ~unchgd $ ~unchgd
Value encodePathSegment (UTF-8) encodePort (UTF-8) encodeQuery (UTF-8) encodeQueryParam (UTF-8) encodeScheme (UTF-8)
[0x000A] - LINE FEED (LF) %0A %0A %0A %0A %0A
[0x000B] - LINE TABULATION %0B %0B %0B %0B %0B
[0x000C] - FORM FEED (FF) %0C %0C %0C %0C %0C
[0x000D] - CARRIAGE RETURN (CR) %0D %0D %0D %0D %0D
[0x0085] - NEXT LINE (NEL) %C2%85 %C2%85 %C2%85 %C2%85 %C2%85
[0x008B] - PARTIAL LINE FORWARD %C2%8B %C2%8B %C2%8B %C2%8B %C2%8B
[0x008D] - REVERSE LINE FEED %C2%8D %C2%8D %C2%8D %C2%8D %C2%8D
[0x2028] - LINE SEPARATOR %E2%80%A8 %E2%80%A8 %E2%80%A8 %E2%80%A8 %E2%80%A8
[0x2029] - PARAGRAPH SEPARATOR %E2%80%A9 %E2%80%A9 %E2%80%A9 %E2%80%A9 %E2%80%A9
[0x005C] - \ %5C %5C %5C %5C %5C
[0x0027] - ' ' ~unchgd %27 ' ~unchgd ' ~unchgd %27
[0x0022] - " %22 %22 %22 %22 %22
[0x003C] - < %3C %3C %3C %3C %3C
[0x003E] - > %3E %3E %3E %3E %3E
[0x003A] - : : ~unchgd %3A : ~unchgd : ~unchgd %3A
[0x003B] - ; ; ~unchgd %3B ; ~unchgd ; ~unchgd %3B
[0x0026] - & & ~unchgd %26 & ~unchgd %26 %26
[0x002F] - / %2F %2F / ~unchgd / ~unchgd %2F
[0x003D] - = = ~unchgd %3D = ~unchgd %3D %3D
[0x0028] - ( ( ~unchgd %28 ( ~unchgd ( ~unchgd %28
[0x0029] - ) ) ~unchgd %29 ) ~unchgd ) ~unchgd %29
[0x005B] - [ %5B %5B %5B %5B %5B
[0x007B] - { %7B %7B %7B %7B %7B
[0x007D] - } %7D %7D %7D %7D %7D
[0x0023] - # %23 %23 %23 %23 %23
[0x0060] - ` %60 %60 %60 %60 %60
[0x0024] - $ $ ~unchgd %24 $ ~unchgd $ ~unchgd %24
Value encodeUserInfo (UTF-8)
[0x000A] - LINE FEED (LF) %0A
[0x000B] - LINE TABULATION %0B
[0x000C] - FORM FEED (FF) %0C
[0x000D] - CARRIAGE RETURN (CR) %0D
[0x0085] - NEXT LINE (NEL) %C2%85
[0x008B] - PARTIAL LINE FORWARD %C2%8B
[0x008D] - REVERSE LINE FEED %C2%8D
[0x2028] - LINE SEPARATOR %E2%80%A8
[0x2029] - PARAGRAPH SEPARATOR %E2%80%A9
[0x005C] - \ %5C
[0x0027] - ' ' ~unchgd
[0x0022] - " %22
[0x003C] - < %3C
[0x003E] - > %3E
[0x003A] - : : ~unchgd
[0x003B] - ; ; ~unchgd
[0x0026] - & & ~unchgd
[0x002F] - / %2F
[0x003D] - = = ~unchgd
[0x0028] - ( ( ~unchgd
[0x0029] - ) ) ~unchgd
[0x005B] - [ %5B
[0x007B] - { %7B
[0x007D] - } %7D
[0x0023] - # %23
[0x0060] - ` %60
[0x0024] - $ $ ~unchgd

org.apache.commons.lang3.StringUtils

The methods normalizeSpace and deleteWhitespace from the library org.apache.commons.lang3.StringUtils can be considered valid cleansers for CRLF injection. They both modify the returned string in different ways. normalizeSpace returns the argument string with whitespace normalized by using trim to remove leading and trailing whitespace and then replacing sequences of whitespace characters by a single space. deleteWhitespace removes all whitespaces from the original input string. For these reasons even though they can be used as cleanser for CWEID 117 (Log Injection) I would personally prefer methods that were explicitly designed for the purpose of remediate Log Injection while at the same time maintaining the content original string.

Encoded Output

Value normalizeSpace deleteWhitespace
[0x000A] - LINE FEED (LF) EMPTY EMPTY
[0x000B] - LINE TABULATION EMPTY EMPTY
[0x000C] - FORM FEED (FF) EMPTY EMPTY
[0x000D] - CARRIAGE RETURN (CR) EMPTY EMPTY
[0x0085] - NEXT LINE (NEL) [133] ~unchgd [133] ~unchgd
[0x008B] - PARTIAL LINE FORWARD [139] ~unchgd [139] ~unchgd
[0x008D] - REVERSE LINE FEED [141] ~unchgd [141] ~unchgd
[0x2028] - LINE SEPARATOR EMPTY EMPTY
[0x2029] - PARAGRAPH SEPARATOR EMPTY EMPTY
[0x005C] - \ \ ~unchgd \ ~unchgd
[0x0027] - ' ' ~unchgd ' ~unchgd
[0x0022] - " " ~unchgd " ~unchgd
[0x003C] - < < ~unchgd < ~unchgd
[0x003E] - > > ~unchgd > ~unchgd
[0x003A] - : : ~unchgd : ~unchgd
[0x003B] - ; ; ~unchgd ; ~unchgd
[0x0026] - & & ~unchgd & ~unchgd
[0x002F] - / / ~unchgd / ~unchgd
[0x003D] - = = ~unchgd = ~unchgd
[0x0028] - ( ( ~unchgd ( ~unchgd
[0x0029] - ) ) ~unchgd ) ~unchgd
[0x005B] - [ [ ~unchgd [ ~unchgd
[0x007B] - { { ~unchgd { ~unchgd
[0x007D] - } } ~unchgd } ~unchgd
[0x0023] - # # ~unchgd # ~unchgd
[0x0060] - ` ` ~unchgd ` ~unchgd

org.apache.commons.lang.StringUtils

The methods normalizeSpace and deleteWhitespace from the library org.apache.commons.lang.StringUtils can be considered valid cleansers for CRLF injection. They both modify the returned string in different ways. normalizeSpace returns the argument string with whitespace normalized by using trim to remove leading and trailing whitespace and then replacing sequences of whitespace characters by a single space. deleteWhitespace removes all whitespaces from the original input string. For this reasons even though they can be used as cleanser for CWEID 117 (Log Injection) I would personally prefer methods that were explicitly designed for the purpose of remediate Log Injection while at the same time maintaining the content original string.

Encoded Output

Value normalizeSpace deleteWhitespace
[0x000A] - LINE FEED (LF) EMPTY EMPTY
[0x000B] - LINE TABULATION EMPTY EMPTY
[0x000C] - FORM FEED (FF) EMPTY EMPTY
[0x000D] - CARRIAGE RETURN (CR) EMPTY EMPTY
[0x0085] - NEXT LINE (NEL) [133] ~unchgd [133] ~unchgd
[0x008B] - PARTIAL LINE FORWARD [139] ~unchgd [139] ~unchgd
[0x008D] - REVERSE LINE FEED [141] ~unchgd [141] ~unchgd
[0x2028] - LINE SEPARATOR EMPTY EMPTY
[0x2029] - PARAGRAPH SEPARATOR EMPTY EMPTY
[0x005C] - \ \ ~unchgd \ ~unchgd
[0x0027] - ' ' ~unchgd ' ~unchgd
[0x0022] - " " ~unchgd " ~unchgd
[0x003C] - < < ~unchgd < ~unchgd
[0x003E] - > > ~unchgd > ~unchgd
[0x003A] - : : ~unchgd : ~unchgd
[0x003B] - ; ; ~unchgd ; ~unchgd
[0x0026] - & & ~unchgd & ~unchgd
[0x002F] - / / ~unchgd / ~unchgd
[0x003D] - = = ~unchgd = ~unchgd
[0x0028] - ( ( ~unchgd ( ~unchgd
[0x0029] - ) ) ~unchgd ) ~unchgd
[0x005B] - [ [ ~unchgd [ ~unchgd
[0x007B] - { { ~unchgd { ~unchgd
[0x007D] - } } ~unchgd } ~unchgd
[0x0023] - # # ~unchgd # ~unchgd
[0x0060] - ` ` ~unchgd ` ~unchgd
[0x0024] - $ $ ~unchgd $ ~unchgd

org.owasp.esapi.StringUtilities

It is interesting to note how replaceLinearWhiteSpace doesn't handle [0x2028] - LINE SEPARATOR and [0x2029] - PARAGRAPH SEPARATOR that are often considered relevant for the risk of CRLF injection. In case when the scope where the tainted string will be logged is unknown I would choose a different method than replaceLinearWhiteSpace.

Encoded Output

Value replaceLinearWhiteSpace stripControls
[0x000A] - LINE FEED (LF) [32] [32]
[0x000B] - LINE TABULATION [32] [32]
[0x000C] - FORM FEED (FF) [32] [32]
[0x000D] - CARRIAGE RETURN (CR) [32] [32]
[0x0085] - NEXT LINE (NEL) [133] ~unchgd [32]
[0x008B] - PARTIAL LINE FORWARD [139] ~unchgd [32]
[0x008D] - REVERSE LINE FEED [141] ~unchgd [32]
[0x2028] - LINE SEPARATOR [8232] ~unchgd [32]
[0x2029] - PARAGRAPH SEPARATOR [8233] ~unchgd [32]
[0x005C] - \ \ ~unchgd \ ~unchgd
[0x0027] - ' ' ~unchgd ' ~unchgd
[0x0022] - " " ~unchgd " ~unchgd
[0x003C] - < < ~unchgd < ~unchgd
[0x003E] - > > ~unchgd > ~unchgd
[0x003A] - : : ~unchgd : ~unchgd
[0x003B] - ; ; ~unchgd ; ~unchgd
[0x0026] - & & ~unchgd & ~unchgd
[0x002F] - / / ~unchgd / ~unchgd
[0x003D] - = = ~unchgd = ~unchgd
[0x0028] - ( ( ~unchgd ( ~unchgd
[0x0029] - ) ) ~unchgd ) ~unchgd
[0x005B] - [ [ ~unchgd [ ~unchgd
[0x007B] - { { ~unchgd { ~unchgd
[0x007D] - } } ~unchgd } ~unchgd
[0x0023] - # # ~unchgd # ~unchgd
[0x0060] - ` ` ~unchgd ` ~unchgd
[0x0024] - $ $ ~unchgd $ ~unchgd

com.google.gwt.safehtml.shared.SafeHtmlUtils

Encoded Output

Value htmlEscape htmlEscapeAllowEntities fromString
[0x000A] - LINE FEED (LF) [10] ~unchgd [10] ~unchgd [10] ~unchgd
[0x000B] - LINE TABULATION [11] ~unchgd [11] ~unchgd [11] ~unchgd
[0x000C] - FORM FEED (FF) [12] ~unchgd [12] ~unchgd [12] ~unchgd
[0x000D] - CARRIAGE RETURN (CR) [13] ~unchgd [13] ~unchgd [13] ~unchgd
[0x0085] - NEXT LINE (NEL) [133] ~unchgd [133] ~unchgd [133] ~unchgd
[0x008B] - PARTIAL LINE FORWARD [139] ~unchgd [139] ~unchgd [139] ~unchgd
[0x008D] - REVERSE LINE FEED [141] ~unchgd [141] ~unchgd [141] ~unchgd
[0x2028] - LINE SEPARATOR [8232] ~unchgd [8232] ~unchgd [8232] ~unchgd
[0x2029] - PARAGRAPH SEPARATOR [8233] ~unchgd [8233] ~unchgd [8233] ~unchgd
[0x005C] - \ \ ~unchgd \ ~unchgd \ ~unchgd
[0x0027] - ' &#39; &#39; &#39;
[0x0022] - " &quot; &quot; &quot;
[0x003C] - < &lt; &lt; &lt;
[0x003E] - > &gt; &gt; &gt;
[0x003A] - : : ~unchgd : ~unchgd : ~unchgd
[0x003B] - ; ; ~unchgd ; ~unchgd ; ~unchgd
[0x0026] - & &amp; &amp; &amp;
[0x002F] - / / ~unchgd / ~unchgd / ~unchgd
[0x003D] - = = ~unchgd = ~unchgd = ~unchgd
[0x0028] - ( ( ~unchgd ( ~unchgd ( ~unchgd
[0x0029] - ) ) ~unchgd ) ~unchgd ) ~unchgd
[0x005B] - [ [ ~unchgd [ ~unchgd [ ~unchgd
[0x007B] - { { ~unchgd { ~unchgd { ~unchgd
[0x007D] - } } ~unchgd } ~unchgd } ~unchgd
[0x0023] - # # ~unchgd # ~unchgd # ~unchgd
[0x0060] - ` ` ~unchgd ` ~unchgd ` ~unchgd
[0x0024] - $ $ ~unchgd $ ~unchgd $ ~unchgd

org.springframework.web.util.HtmlUtils

Encoded Output

Value htmlEscape htmlEscapeDecimal htmlEscapeHex
[0x000A] - LINE FEED (LF) [10] ~unchgd [10] ~unchgd [10] ~unchgd
[0x000B] - LINE TABULATION [11] ~unchgd [11] ~unchgd [11] ~unchgd
[0x000C] - FORM FEED (FF) [12] ~unchgd [12] ~unchgd [12] ~unchgd
[0x000D] - CARRIAGE RETURN (CR) [13] ~unchgd [13] ~unchgd [13] ~unchgd
[0x0085] - NEXT LINE (NEL) [133] ~unchgd [133] ~unchgd [133] ~unchgd
[0x008B] - PARTIAL LINE FORWARD [139] ~unchgd [139] ~unchgd [139] ~unchgd
[0x008D] - REVERSE LINE FEED [141] ~unchgd [141] ~unchgd [141] ~unchgd
[0x2028] - LINE SEPARATOR [8232] ~unchgd [8232] ~unchgd [8232] ~unchgd
[0x2029] - PARAGRAPH SEPARATOR [8233] ~unchgd [8233] ~unchgd [8233] ~unchgd
[0x005C] - \ \ ~unchgd \ ~unchgd \ ~unchgd
[0x0027] - ' &#39; &#39; &#x27;
[0x0022] - " &quot; &#34; &#x22;
[0x003C] - < &lt; &#60; &#x3c;
[0x003E] - > &gt; &#62; &#x3e;
[0x003A] - : : ~unchgd : ~unchgd : ~unchgd
[0x003B] - ; ; ~unchgd ; ~unchgd ; ~unchgd
[0x0026] - & &amp; &#38; &#x26;
[0x002F] - / / ~unchgd / ~unchgd / ~unchgd
[0x003D] - = = ~unchgd = ~unchgd = ~unchgd
[0x0028] - ( ( ~unchgd ( ~unchgd ( ~unchgd
[0x0029] - ) ) ~unchgd ) ~unchgd ) ~unchgd
[0x005B] - [ [ ~unchgd [ ~unchgd [ ~unchgd
[0x007B] - { { ~unchgd { ~unchgd { ~unchgd
[0x007D] - } } ~unchgd } ~unchgd } ~unchgd
[0x0023] - # # ~unchgd # ~unchgd # ~unchgd
[0x0060] - ` ` ~unchgd ` ~unchgd ` ~unchgd
[0x0024] - $ $ ~unchgd $ ~unchgd $ ~unchgd

org.owasp.reform.Reform

Encoded Output

Value HtmlAttributeEncode HtmlEncode JsString VbsString XmlAttributeEncode
[0x000A] - LINE FEED (LF) &#10; &#10; '\x0a' chrw(10) &#10;
[0x000B] - LINE TABULATION &#11; &#11; '\x0b' chrw(11) &#11;
[0x000C] - FORM FEED (FF) &#12; &#12; '\x0c' chrw(12) &#12;
[0x000D] - CARRIAGE RETURN (CR) &#13; &#13; '\x0d' chrw(13) &#13;
[0x0085] - NEXT LINE (NEL) &#133; &#133; '\u0085' chrw(133) &#133;
[0x008B] - PARTIAL LINE FORWARD &#139; &#139; '\u008b' chrw(139) &#139;
[0x008D] - REVERSE LINE FEED &#141; &#141; '\u008d' chrw(141) &#141;
[0x2028] - LINE SEPARATOR &#8232; &#8232; '\u2028' chrw(8232) &#8232;
[0x2029] - PARAGRAPH SEPARATOR &#8233; &#8233; '\u2029' chrw(8233) &#8233;
[0x005C] - \ &#92; &#92; '\x5c' chrw(92) &#92;
[0x0027] - ' &#39; &#39; '\x27' chrw(39) &#39;
[0x0022] - " &#34; &#34; '\x22' chrw(34) &#34;
[0x003C] - < &#60; &#60; '\x3c' chrw(60) &#60;
[0x003E] - > &#62; &#62; '\x3e' chrw(62) &#62;
[0x003A] - : &#58; &#58; '\x3a' chrw(58) &#58;
[0x003B] - ; &#59; &#59; '\x3b' chrw(59) &#59;
[0x0026] - & &#38; &#38; '\x26' chrw(38) &#38;
[0x002F] - / &#47; &#47; '\x2f' chrw(47) &#47;
[0x003D] - = &#61; &#61; '\x3d' chrw(61) &#61;
[0x0028] - ( &#40; &#40; '\x28' chrw(40) &#40;
[0x0029] - ) &#41; &#41; '\x29' chrw(41) &#41;
[0x005B] - [ &#91; &#91; '\x5b' chrw(91) &#91;
[0x007B] - { &#123; &#123; '\x7b' chrw(123) &#123;
[0x007D] - } &#125; &#125; '\x7d' chrw(125) &#125;
[0x0023] - # &#35; &#35; '\x23' chrw(35) &#35;
[0x0060] - ` &#96; &#96; '\x60' chrw(96) &#96;
[0x0024] - $ &#36; &#36; '\x24' chrw(36) &#36;
Value XmlEncode
[0x000A] - LINE FEED (LF) &#10;
[0x000B] - LINE TABULATION &#11;
[0x000C] - FORM FEED (FF) &#12;
[0x000D] - CARRIAGE RETURN (CR) &#13;
[0x0085] - NEXT LINE (NEL) &#133;
[0x008B] - PARTIAL LINE FORWARD &#139;
[0x008D] - REVERSE LINE FEED &#141;
[0x2028] - LINE SEPARATOR &#8232;
[0x2029] - PARAGRAPH SEPARATOR &#8233;
[0x005C] - \ &#92;
[0x0027] - ' &#39;
[0x0022] - " &#34;
[0x003C] - < &#60;
[0x003E] - > &#62;
[0x003A] - : &#58;
[0x003B] - ; &#59;
[0x0026] - & &#38;
[0x002F] - / &#47;
[0x003D] - = &#61;
[0x0028] - ( &#40;
[0x0029] - ) &#41;
[0x005B] - [ &#91;
[0x007B] - { &#123;
[0x007D] - } &#125;
[0x0023] - # &#35;
[0x0060] - ` &#96;
[0x0024] - $ &#36;

org.springframework.util.StringUtils

trimWhitespace is not a valid cleanser because it will only remove the first and last whitespace of a string, leaving all the whitespaces inside the string unmodified.

Encoded Output

Value trimAllWhitespace trimWhitespace - Not a Cleanser
[0x000A] - LINE FEED (LF) EMPTY EMPTY
[0x000B] - LINE TABULATION EMPTY EMPTY
[0x000C] - FORM FEED (FF) EMPTY EMPTY
[0x000D] - CARRIAGE RETURN (CR) EMPTY EMPTY
[0x0085] - NEXT LINE (NEL) [133] ~unchgd [133] ~unchgd
[0x008B] - PARTIAL LINE FORWARD [139] ~unchgd [139] ~unchgd
[0x008D] - REVERSE LINE FEED [141] ~unchgd [141] ~unchgd
[0x2028] - LINE SEPARATOR EMPTY EMPTY
[0x2029] - PARAGRAPH SEPARATOR EMPTY EMPTY
[0x005C] - \ \ ~unchgd \ ~unchgd
[0x0027] - ' ' ~unchgd ' ~unchgd
[0x0022] - " " ~unchgd " ~unchgd
[0x003C] - < < ~unchgd < ~unchgd
[0x003E] - > > ~unchgd > ~unchgd
[0x003A] - : : ~unchgd : ~unchgd
[0x003B] - ; ; ~unchgd ; ~unchgd
[0x0026] - & & ~unchgd & ~unchgd
[0x002F] - / / ~unchgd / ~unchgd
[0x003D] - = = ~unchgd = ~unchgd
[0x0028] - ( ( ~unchgd ( ~unchgd
[0x0029] - ) ) ~unchgd ) ~unchgd
[0x005B] - [ [ ~unchgd [ ~unchgd
[0x007B] - { { ~unchgd { ~unchgd
[0x007D] - } } ~unchgd } ~unchgd
[0x0023] - # # ~unchgd # ~unchgd
[0x0060] - ` ` ~unchgd ` ~unchgd
[0x0024] - $ $ ~unchgd $ ~unchgd

org.apache.axis.components.encoding.XMLEncoder

Encoded Output

Value encode
[0x000A] - LINE FEED (LF) [10] ~unchgd
[0x000B] - LINE TABULATION [11] ~unchgd
[0x000C] - FORM FEED (FF) Exception encoding...The char '0xc' after '' is not a valid XML character.
[0x000D] - CARRIAGE RETURN (CR) [13] ~unchgd
[0x0085] - NEXT LINE (NEL) [133] ~unchgd
[0x008B] - PARTIAL LINE FORWARD [139] ~unchgd
[0x008D] - REVERSE LINE FEED [141] ~unchgd
[0x2028] - LINE SEPARATOR [8232] ~unchgd
[0x2029] - PARAGRAPH SEPARATOR [8233] ~unchgd
[0x005C] - \ \ ~unchgd
[0x0027] - ' ' ~unchgd
[0x0022] - " &quot;
[0x003C] - < &lt;
[0x003E] - > &gt;
[0x003A] - : : ~unchgd
[0x003B] - ; ; ~unchgd
[0x0026] - & &amp;
[0x002F] - / / ~unchgd
[0x003D] - = = ~unchgd
[0x0028] - ( ( ~unchgd
[0x0029] - ) ) ~unchgd
[0x005B] - [ [ ~unchgd
[0x007B] - { { ~unchgd
[0x007D] - } } ~unchgd
[0x0023] - # # ~unchgd
[0x0060] - ` ` ~unchgd
[0x0024] - $ $ ~unchgd

org.owasp.esapi.ESAPI

Encoded Output

Value encodeForBase64 encodeForCSS encodeForHTML encodeForHTMLAttribute encodeForJavaScript
[0x000A] - LINE FEED (LF) Cg== \a[32] &#xa; &#xa; \x0A
[0x000B] - LINE TABULATION Cw== \b[32] &#xfffd; &#xfffd; \x0B
[0x000C] - FORM FEED (FF) DA== \c[32] &#xfffd; &#xfffd; \x0C
[0x000D] - CARRIAGE RETURN (CR) DQ== \d[32] &#xd; &#xd; \x0D
[0x0085] - NEXT LINE (NEL) hQ== \85[32] &#xfffd; &#xfffd; \x85
[0x008B] - PARTIAL LINE FORWARD iw== \8b[32] &#xfffd; &#xfffd; \x8B
[0x008D] - REVERSE LINE FEED jQ== \8d[32] &#xfffd; &#xfffd; \x8D
[0x2028] - LINE SEPARATOR KA== \2028[32] &#x2028; &#x2028; \u2028
[0x2029] - PARAGRAPH SEPARATOR KQ== \2029[32] &#x2029; &#x2029; \u2029
[0x005C] - \ XA== \5c[32] &#x5c; &#x5c; \x5C
[0x0027] - ' Jw== \27[32] &#x27; &#x27; \x27
[0x0022] - " Ig== \22[32] &quot; &quot; \x22
[0x003C] - < PA== \3c[32] &lt; &lt; \x3C
[0x003E] - > Pg== \3e[32] &gt; &gt; \x3E
[0x003A] - : Og== \3a[32] &#x3a; &#x3a; \x3A
[0x003B] - ; Ow== \3b[32] &#x3b; &#x3b; \x3B
[0x0026] - & Jg== \26[32] &amp; &amp; \x26
[0x002F] - / Lw== \2f[32] &#x2f; &#x2f; \x2F
[0x003D] - = PQ== \3d[32] &#x3d; &#x3d; \x3D
[0x0028] - ( KA== \28[32] &#x28; &#x28; \x28
[0x0029] - ) KQ== \29[32] &#x29; &#x29; \x29
[0x005B] - [ Ww== \5b[32] &#x5b; &#x5b; \x5B
[0x007B] - { ew== \7b[32] &#x7b; &#x7b; \x7B
[0x007D] - } fQ== \7d[32] &#x7d; &#x7d; \x7D
[0x0023] - # Iw== # ~unchgd &#x23; &#x23; \x23
[0x0060] - ` YA== \60[32] &#x60; &#x60; \x60
[0x0024] - $ JA== \24[32] &#x24; &#x24; \x24
Value encodeForURL encodeForXML encodeForXMLAttribute replaceLinearWhiteSpace stripControls
[0x000A] - LINE FEED (LF) %0A &#xa; &#xa; [32] [32]
[0x000B] - LINE TABULATION %0B &#xb; &#xb; [32] [32]
[0x000C] - FORM FEED (FF) %0C &#xc; &#xc; [32] [32]
[0x000D] - CARRIAGE RETURN (CR) %0D &#xd; &#xd; [32] [32]
[0x0085] - NEXT LINE (NEL) %C2%85 &#x85; &#x85; [133] ~unchgd [32]
[0x008B] - PARTIAL LINE FORWARD %C2%8B &#x8b; &#x8b; [139] ~unchgd [32]
[0x008D] - REVERSE LINE FEED %C2%8D &#x8d; &#x8d; [141] ~unchgd [32]
[0x2028] - LINE SEPARATOR %E2%80%A8 &#x2028; &#x2028; [8232] ~unchgd [32]
[0x2029] - PARAGRAPH SEPARATOR %E2%80%A9 &#x2029; &#x2029; [8233] ~unchgd [32]
[0x005C] - \ %5C &#x5c; &#x5c; \ ~unchgd \ ~unchgd
[0x0027] - ' %27 &#x27; &#x27; ' ~unchgd ' ~unchgd
[0x0022] - " %22 &#x22; &#x22; " ~unchgd " ~unchgd
[0x003C] - < %3C &#x3c; &#x3c; < ~unchgd < ~unchgd
[0x003E] - > %3E &#x3e; &#x3e; > ~unchgd > ~unchgd
[0x003A] - : %3A &#x3a; &#x3a; : ~unchgd : ~unchgd
[0x003B] - ; %3B &#x3b; &#x3b; ; ~unchgd ; ~unchgd
[0x0026] - & %26 &#x26; &#x26; & ~unchgd & ~unchgd
[0x002F] - / %2F &#x2f; &#x2f; / ~unchgd / ~unchgd
[0x003D] - = %3D &#x3d; &#x3d; = ~unchgd = ~unchgd
[0x0028] - ( %28 &#x28; &#x28; ( ~unchgd ( ~unchgd
[0x0029] - ) %29 &#x29; &#x29; ) ~unchgd ) ~unchgd
[0x005B] - [ %5B &#x5b; &#x5b; [ ~unchgd [ ~unchgd
[0x007B] - { %7B &#x7b; &#x7b; { ~unchgd { ~unchgd
[0x007D] - } %7D &#x7d; &#x7d; } ~unchgd } ~unchgd
[0x0023] - # %23 &#x23; &#x23; # ~unchgd # ~unchgd
[0x0060] - ` %60 &#x60; &#x60; ` ~unchgd ` ~unchgd
[0x0024] - $ %24 &#x24; &#x24; $ ~unchgd $ ~unchgd

org.owasp.encoder

Encoded Output

Value forCDATA forCssString forCssUrl forHtml forHtmlAttribute
[0x000A] - LINE FEED (LF) [10] ~unchgd \a \a [10] ~unchgd [10] ~unchgd
[0x000B] - LINE TABULATION [32] \b \b [32] [32]
[0x000C] - FORM FEED (FF) [32] \c \c [32] [32]
[0x000D] - CARRIAGE RETURN (CR) [13] ~unchgd \d \d [13] ~unchgd [13] ~unchgd
[0x0085] - NEXT LINE (NEL) [133] ~unchgd \85 \85 [133] ~unchgd [133] ~unchgd
[0x008B] - PARTIAL LINE FORWARD [32] \8b \8b [32] [32]
[0x008D] - REVERSE LINE FEED [32] \8d \8d [32] [32]
[0x2028] - LINE SEPARATOR [8232] ~unchgd \2028 \2028 [8232] ~unchgd [8232] ~unchgd
[0x2029] - PARAGRAPH SEPARATOR [8233] ~unchgd \2029 \2029 [8233] ~unchgd [8233] ~unchgd
[0x005C] - \ \ ~unchgd \5c \5c \ ~unchgd \ ~unchgd
[0x0027] - ' ' ~unchgd \27 \27 &#39; &#39;
[0x0022] - " " ~unchgd \22 \22 &#34; &#34;
[0x003C] - < < ~unchgd \3c \3c &lt; &lt;
[0x003E] - > > ~unchgd \3e \3e &gt; > ~unchgd
[0x003A] - : : ~unchgd : ~unchgd : ~unchgd : ~unchgd : ~unchgd
[0x003B] - ; ; ~unchgd ; ~unchgd ; ~unchgd ; ~unchgd ; ~unchgd
[0x0026] - & & ~unchgd \26 \26 &amp; &amp;
[0x002F] - / / ~unchgd \2f \2f / ~unchgd / ~unchgd
[0x003D] - = = ~unchgd = ~unchgd = ~unchgd = ~unchgd = ~unchgd
[0x0028] - ( ( ~unchgd ( ~unchgd \28 ( ~unchgd ( ~unchgd
[0x0029] - ) ) ~unchgd ) ~unchgd \29 ) ~unchgd ) ~unchgd
[0x005B] - [ [ ~unchgd [ ~unchgd [ ~unchgd [ ~unchgd [ ~unchgd
[0x007B] - { { ~unchgd { ~unchgd { ~unchgd { ~unchgd { ~unchgd
[0x007D] - } } ~unchgd } ~unchgd } ~unchgd } ~unchgd } ~unchgd
[0x0023] - # # ~unchgd # ~unchgd # ~unchgd # ~unchgd # ~unchgd
[0x0060] - ` ` ~unchgd ` ~unchgd ` ~unchgd ` ~unchgd ` ~unchgd
[0x0024] - $ $ ~unchgd $ ~unchgd $ ~unchgd $ ~unchgd $ ~unchgd
Value forHtmlContent forHtmlUnquotedAttribute forJava forJavaScript forJavaScriptAttribute
[0x000A] - LINE FEED (LF) [10] ~unchgd &#10; \n \n \n
[0x000B] - LINE TABULATION [32] - \13 \x0b \x0b
[0x000C] - FORM FEED (FF) [32] &#12; \f \f \f
[0x000D] - CARRIAGE RETURN (CR) [13] ~unchgd &#13; \r \r \r
[0x0085] - NEXT LINE (NEL) [133] ~unchgd &#133; \205 [133] ~unchgd [133] ~unchgd
[0x008B] - PARTIAL LINE FORWARD [32] - \213 [139] ~unchgd [139] ~unchgd
[0x008D] - REVERSE LINE FEED [32] - \215 [141] ~unchgd [141] ~unchgd
[0x2028] - LINE SEPARATOR [8232] ~unchgd &#8232; \u2028 \u2028 \u2028
[0x2029] - PARAGRAPH SEPARATOR [8233] ~unchgd &#8233; \u2029 \u2029 \u2029
[0x005C] - \ \ ~unchgd \ ~unchgd \\ \\ \\
[0x0027] - ' ' ~unchgd &#39; &#39; \x27 \x27
[0x0022] - " " ~unchgd &#34; &quot; \x22 \x22
[0x003C] - < &lt; &lt; < ~unchgd < ~unchgd < ~unchgd
[0x003E] - > &gt; &gt; > ~unchgd > ~unchgd > ~unchgd
[0x003A] - : : ~unchgd : ~unchgd : ~unchgd : ~unchgd : ~unchgd
[0x003B] - ; ; ~unchgd ; ~unchgd ; ~unchgd ; ~unchgd ; ~unchgd
[0x0026] - & &amp; &amp; & ~unchgd \x26 \x26
[0x002F] - / / ~unchgd &#47; / ~unchgd / / ~unchgd
[0x003D] - = = ~unchgd &#61; = ~unchgd = ~unchgd = ~unchgd
[0x0028] - ( ( ~unchgd ( ~unchgd ( ~unchgd ( ~unchgd ( ~unchgd
[0x0029] - ) ) ~unchgd ) ~unchgd ) ~unchgd ) ~unchgd ) ~unchgd
[0x005B] - [ [ ~unchgd [ ~unchgd [ ~unchgd [ ~unchgd [ ~unchgd
[0x007B] - { { ~unchgd { ~unchgd { ~unchgd { ~unchgd { ~unchgd
[0x007D] - } } ~unchgd } ~unchgd } ~unchgd } ~unchgd } ~unchgd
[0x0023] - # # ~unchgd # ~unchgd # ~unchgd # ~unchgd # ~unchgd
[0x0060] - ` ` ~unchgd &#96; ` ~unchgd ` ~unchgd ` ~unchgd
[0x0024] - $ $ ~unchgd $ ~unchgd $ ~unchgd $ ~unchgd $ ~unchgd
Value forJavaScriptBlock forJavaScriptSource forUri forUriComponent forXml
[0x000A] - LINE FEED (LF) \n \n %0A %0A [10] ~unchgd
[0x000B] - LINE TABULATION \x0b \x0b %0B %0B [32]
[0x000C] - FORM FEED (FF) \f \f %0C %0C [32]
[0x000D] - CARRIAGE RETURN (CR) \r \r %0D %0D [13] ~unchgd
[0x0085] - NEXT LINE (NEL) [133] ~unchgd [133] ~unchgd %C2%85 %C2%85 [133] ~unchgd
[0x008B] - PARTIAL LINE FORWARD [139] ~unchgd [139] ~unchgd %C2%8B %C2%8B [32]
[0x008D] - REVERSE LINE FEED [141] ~unchgd [141] ~unchgd %C2%8D %C2%8D [32]
[0x2028] - LINE SEPARATOR \u2028 \u2028 %E2%80%A8 %E2%80%A8 [8232] ~unchgd
[0x2029] - PARAGRAPH SEPARATOR \u2029 \u2029 %E2%80%A9 %E2%80%A9 [8233] ~unchgd
[0x005C] - \ \\ \\ %5C %5C \ ~unchgd
[0x0027] - ' &#39; &#39; ' ~unchgd %27 &#39;
[0x0022] - " &quot; &quot; %22 %22 &#34;
[0x003C] - < < ~unchgd < ~unchgd %3C %3C &lt;
[0x003E] - > > ~unchgd > ~unchgd %3E %3E &gt;
[0x003A] - : : ~unchgd : ~unchgd : ~unchgd %3A : ~unchgd
[0x003B] - ; ; ~unchgd ; ~unchgd ; ~unchgd %3B ; ~unchgd
[0x0026] - & \x26 & ~unchgd & ~unchgd %26 &amp;
[0x002F] - / / / ~unchgd / ~unchgd %2F / ~unchgd
[0x003D] - = = ~unchgd = ~unchgd = ~unchgd %3D = ~unchgd
[0x0028] - ( ( ~unchgd ( ~unchgd ( ~unchgd %28 ( ~unchgd
[0x0029] - ) ) ~unchgd ) ~unchgd ) ~unchgd %29 ) ~unchgd
[0x005B] - [ [ ~unchgd [ ~unchgd [ ~unchgd %5B [ ~unchgd
[0x007B] - { { ~unchgd { ~unchgd %7B %7B { ~unchgd
[0x007D] - } } ~unchgd } ~unchgd %7D %7D } ~unchgd
[0x0023] - # # ~unchgd # ~unchgd # ~unchgd %23 # ~unchgd
[0x0060] - ` ` ~unchgd ` ~unchgd %60 %60 ` ~unchgd
[0x0024] - $ $ ~unchgd $ ~unchgd $ ~unchgd %24 $ ~unchgd
Value forXmlComment forXmlContent
[0x000A] - LINE FEED (LF) [10] ~unchgd [10] ~unchgd
[0x000B] - LINE TABULATION [32] [32]
[0x000C] - FORM FEED (FF) [32] [32]
[0x000D] - CARRIAGE RETURN (CR) [13] ~unchgd [13] ~unchgd
[0x0085] - NEXT LINE (NEL) [133] ~unchgd [133] ~unchgd
[0x008B] - PARTIAL LINE FORWARD [32] [32]
[0x008D] - REVERSE LINE FEED [32] [32]
[0x2028] - LINE SEPARATOR [8232] ~unchgd [8232] ~unchgd
[0x2029] - PARAGRAPH SEPARATOR [8233] ~unchgd [8233] ~unchgd
[0x005C] - \ \ ~unchgd \ ~unchgd
[0x0027] - ' ' ~unchgd ' ~unchgd
[0x0022] - " " ~unchgd " ~unchgd
[0x003C] - < < ~unchgd &lt;
[0x003E] - > > ~unchgd &gt;
[0x003A] - : : ~unchgd : ~unchgd
[0x003B] - ; ; ~unchgd ; ~unchgd
[0x0026] - & & ~unchgd &amp;
[0x002F] - / / ~unchgd / ~unchgd
[0x003D] - = = ~unchgd = ~unchgd
[0x0028] - ( ( ~unchgd ( ~unchgd
[0x0029] - ) ) ~unchgd ) ~unchgd
[0x005B] - [ [ ~unchgd [ ~unchgd
[0x007B] - { { ~unchgd { ~unchgd
[0x007D] - } } ~unchgd } ~unchgd
[0x0023] - # # ~unchgd # ~unchgd
[0x0060] - ` ` ~unchgd ` ~unchgd
[0x0024] - $ $ ~unchgd $ ~unchgd

com.liferay.portal.kernel.util.HtmlUtil

Encoded Output

Value escapeAttribute escape escapeCSS escapeHREF escapeJS
[0x000A] - LINE FEED (LF) [10] ~unchgd [10] ~unchgd \0a [10] ~unchgd \x0a
[0x000B] - LINE TABULATION [32] [32] \0b [32] \x0b
[0x000C] - FORM FEED (FF) [32] [32] \0c [32] \x0c
[0x000D] - CARRIAGE RETURN (CR) [13] ~unchgd [13] ~unchgd \0d [13] ~unchgd \x0d
[0x0085] - NEXT LINE (NEL) [133] ~unchgd [133] ~unchgd \85 [133] ~unchgd \x85
[0x008B] - PARTIAL LINE FORWARD [139] ~unchgd [139] ~unchgd \8b [139] ~unchgd \x8b
[0x008D] - REVERSE LINE FEED [141] ~unchgd [141] ~unchgd \8d [141] ~unchgd \x8d
[0x2028] - LINE SEPARATOR [8232] ~unchgd &#8232; [8232] ~unchgd [8232] ~unchgd \u2028
[0x2029] - PARAGRAPH SEPARATOR [8233] ~unchgd [8233] ~unchgd [8233] ~unchgd [8233] ~unchgd \u2029
[0x005C] - \ \ ~unchgd \ ~unchgd \5c \ ~unchgd \x5c
[0x0027] - ' &#39; &#39; \27 &#39; \x27
[0x0022] - " &quot; &#34; \22 &quot; \x22
[0x003C] - < &lt; &lt; \3c &lt; \x3c
[0x003E] - > &gt; &gt; \3e &gt; \x3e
[0x003A] - : : ~unchgd : ~unchgd \3a %3a \x3a
[0x003B] - ; ; ~unchgd ; ~unchgd \3b ; ~unchgd \x3b
[0x0026] - & &amp; &amp; \26 &amp; \x26
[0x002F] - / / ~unchgd / ~unchgd \2f / ~unchgd \x2f
[0x003D] - = = ~unchgd = ~unchgd \3d = ~unchgd \x3d
[0x0028] - ( ( ~unchgd ( ~unchgd \28 ( ~unchgd \x28
[0x0029] - ) ) ~unchgd ) ~unchgd \29 ) ~unchgd \x29
[0x005B] - [ [ ~unchgd [ ~unchgd \5b [ ~unchgd \x5b
[0x007B] - { { ~unchgd { ~unchgd \7b { ~unchgd \x7b
[0x007D] - } } ~unchgd } ~unchgd \7d } ~unchgd \x7d
[0x0023] - # # ~unchgd # ~unchgd \23 # ~unchgd \x23
[0x0060] - ` ` ~unchgd ` ~unchgd \60 ` ~unchgd \x60
[0x0024] - $ $ ~unchgd $ ~unchgd \24 $ ~unchgd \x24
Value escapeURL escapeXPath escapeXPathAttribute
[0x000A] - LINE FEED (LF) %0A _ "[10]"
[0x000B] - LINE TABULATION %0B [11] ~unchgd "[11]"
[0x000C] - FORM FEED (FF) %0C [12] ~unchgd "[12]"
[0x000D] - CARRIAGE RETURN (CR) %0D _ "[13]"
[0x0085] - NEXT LINE (NEL) %C2%85 _ "[133]"
[0x008B] - PARTIAL LINE FORWARD %C2%8B [139] ~unchgd "[139]"
[0x008D] - REVERSE LINE FEED %C2%8D [141] ~unchgd "[141]"
[0x2028] - LINE SEPARATOR %E2%80%A8 _ "[8232]"
[0x2029] - PARAGRAPH SEPARATOR %E2%80%A9 [8233] ~unchgd "[8233]"
[0x005C] - \ %5C \ ~unchgd "&quot;
[0x0027] - ' %27 ' ~unchgd "'"
[0x0022] - " %22 _ '"'
[0x003C] - < %3C _ "<"
[0x003E] - > %3E _ ">"
[0x003A] - : %3A _ ":"
[0x003B] - ; %3B ; ~unchgd ";"
[0x0026] - & %26 & ~unchgd "&"
[0x002F] - / %2F _ "/"
[0x003D] - = %3D _ "="
[0x0028] - ( %28 _ "("
[0x0029] - ) %29 _ ")"
[0x005B] - [ %5B _ "["
[0x007B] - { %7B { ~unchgd "{"
[0x007D] - } %7D } ~unchgd "}"
[0x0023] - # %23 # ~unchgd "#"
[0x0060] - ` %60 ` ~unchgd "`"
[0x0024] - $ %24 _ "$"

org.apache.commons.text.StringEscapeUtils

Encoded Output

Value escapeCsv escapeEcmaScript escapeHtml3 escapeHtml4 escapeJava
[0x000A] - LINE FEED (LF) "[10]" \n [10] ~unchgd [10] ~unchgd \n
[0x000B] - LINE TABULATION [11] ~unchgd \u000B [11] ~unchgd [11] ~unchgd \u000B
[0x000C] - FORM FEED (FF) [12] ~unchgd \f [12] ~unchgd [12] ~unchgd \f
[0x000D] - CARRIAGE RETURN (CR) "[13]" \r [13] ~unchgd [13] ~unchgd \r
[0x0085] - NEXT LINE (NEL) [133] ~unchgd \u0085 [133] ~unchgd [133] ~unchgd \u0085
[0x008B] - PARTIAL LINE FORWARD [139] ~unchgd \u008B [139] ~unchgd [139] ~unchgd \u008B
[0x008D] - REVERSE LINE FEED [141] ~unchgd \u008D [141] ~unchgd [141] ~unchgd \u008D
[0x2028] - LINE SEPARATOR [8232] ~unchgd \u2028 [8232] ~unchgd [8232] ~unchgd \u2028
[0x2029] - PARAGRAPH SEPARATOR [8233] ~unchgd \u2029 [8233] ~unchgd [8233] ~unchgd \u2029
[0x005C] - \ \ ~unchgd \\ \ ~unchgd \ ~unchgd \\
[0x0027] - ' ' ~unchgd &#39; ' ~unchgd ' ~unchgd ' ~unchgd
[0x0022] - " """" &quot; &quot; &quot; &quot;
[0x003C] - < < ~unchgd < ~unchgd &lt; &lt; < ~unchgd
[0x003E] - > > ~unchgd > ~unchgd &gt; &gt; > ~unchgd
[0x003A] - : : ~unchgd : ~unchgd : ~unchgd : ~unchgd : ~unchgd
[0x003B] - ; ; ~unchgd ; ~unchgd ; ~unchgd ; ~unchgd ; ~unchgd
[0x0026] - & & ~unchgd & ~unchgd &amp; &amp; & ~unchgd
[0x002F] - / / ~unchgd / / ~unchgd / ~unchgd / ~unchgd
[0x003D] - = = ~unchgd = ~unchgd = ~unchgd = ~unchgd = ~unchgd
[0x0028] - ( ( ~unchgd ( ~unchgd ( ~unchgd ( ~unchgd ( ~unchgd
[0x0029] - ) ) ~unchgd ) ~unchgd ) ~unchgd ) ~unchgd ) ~unchgd
[0x005B] - [ [ ~unchgd [ ~unchgd [ ~unchgd [ ~unchgd [ ~unchgd
[0x007B] - { { ~unchgd { ~unchgd { ~unchgd { ~unchgd { ~unchgd
[0x007D] - } } ~unchgd } ~unchgd } ~unchgd } ~unchgd } ~unchgd
[0x0023] - # # ~unchgd # ~unchgd # ~unchgd # ~unchgd # ~unchgd
[0x0060] - ` ` ~unchgd ` ~unchgd ` ~unchgd ` ~unchgd ` ~unchgd
[0x0024] - $ $ ~unchgd $ ~unchgd $ ~unchgd $ ~unchgd $ ~unchgd
Value escapeJson escapeXml10 escapeXml11 escapeXSI
[0x000A] - LINE FEED (LF) \n [10] ~unchgd [10] ~unchgd EMPTY
[0x000B] - LINE TABULATION \u000B EMPTY &#11; [11] ~unchgd
[0x000C] - FORM FEED (FF) \f EMPTY &#12; [12] ~unchgd
[0x000D] - CARRIAGE RETURN (CR) \r [13] ~unchgd [13] ~unchgd [13] ~unchgd
[0x0085] - NEXT LINE (NEL) \u0085 [133] ~unchgd [133] ~unchgd [133] ~unchgd
[0x008B] - PARTIAL LINE FORWARD \u008B &#139; &#139; [139] ~unchgd
[0x008D] - REVERSE LINE FEED \u008D &#141; &#141; [141] ~unchgd
[0x2028] - LINE SEPARATOR \u2028 [8232] ~unchgd [8232] ~unchgd [8232] ~unchgd
[0x2029] - PARAGRAPH SEPARATOR \u2029 [8233] ~unchgd [8233] ~unchgd [8233] ~unchgd
[0x005C] - \ \\ \ ~unchgd \ ~unchgd \\
[0x0027] - ' ' ~unchgd &apos; &apos; &#39;
[0x0022] - " &quot; &quot; &quot; &quot;
[0x003C] - < < ~unchgd &lt; &lt; &lt;
[0x003E] - > > ~unchgd &gt; &gt; &gt;
[0x003A] - : : ~unchgd : ~unchgd : ~unchgd : ~unchgd
[0x003B] - ; ; ~unchgd ; ~unchgd ; ~unchgd ;
[0x0026] - & & ~unchgd &amp; &amp; &amp;
[0x002F] - / / / ~unchgd / ~unchgd / ~unchgd
[0x003D] - = = ~unchgd = ~unchgd = ~unchgd =
[0x0028] - ( ( ~unchgd ( ~unchgd ( ~unchgd (
[0x0029] - ) ) ~unchgd ) ~unchgd ) ~unchgd )
[0x005B] - [ [ ~unchgd [ ~unchgd [ ~unchgd [
[0x007B] - { { ~unchgd { ~unchgd { ~unchgd { ~unchgd
[0x007D] - } } ~unchgd } ~unchgd } ~unchgd } ~unchgd
[0x0023] - # # ~unchgd # ~unchgd # ~unchgd #
[0x0060] - ` ` ~unchgd ` ~unchgd ` ~unchgd `
[0x0024] - $ $ ~unchgd $ ~unchgd $ ~unchgd $

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published