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
'"',
'\'',
'<',
'>',
':',
';',
'\\',
'&',
'/',
'=',
'(',
')',
'[',
'{',
'}',
'#',
'`',
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] - '
'
'
'
[0x0022] - "
"
"
"
[0x003C] - <
<
<
<
[0x003E] - >
>
>
>
[0x003A] - :
: ~unchgd
: ~unchgd
: ~unchgd
[0x003B] - ;
; ~unchgd
; ~unchgd
; ~unchgd
[0x0026] - &
&
&
&
[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] - '
'
'
'
[0x0022] - "
"
"
"
[0x003C] - <
<
<
<
[0x003E] - >
>
>
>
[0x003A] - :
: ~unchgd
: ~unchgd
: ~unchgd
[0x003B] - ;
; ~unchgd
; ~unchgd
; ~unchgd
[0x0026] - &
&
&
&
[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)
'\x0a'
chrw(10)
[0x000B] - LINE TABULATION


'\x0b'
chrw(11)

[0x000C] - FORM FEED (FF)


'\x0c'
chrw(12)

[0x000D] - CARRIAGE RETURN (CR)
'\x0d'
chrw(13)
[0x0085] - NEXT LINE (NEL)
…
…
'\u0085'
chrw(133)
…
[0x008B] - PARTIAL LINE FORWARD
‹
‹
'\u008b'
chrw(139)
‹
[0x008D] - REVERSE LINE FEED


'\u008d'
chrw(141)

[0x2028] - LINE SEPARATOR




'\u2028'
chrw(8232)


[0x2029] - PARAGRAPH SEPARATOR




'\u2029'
chrw(8233)


[0x005C] - \
\
\
'\x5c'
chrw(92)
\
[0x0027] - '
'
'
'\x27'
chrw(39)
'
[0x0022] - "
"
"
'\x22'
chrw(34)
"
[0x003C] - <
<
<
'\x3c'
chrw(60)
<
[0x003E] - >
>
>
'\x3e'
chrw(62)
>
[0x003A] - :
:
:
'\x3a'
chrw(58)
:
[0x003B] - ;
;
;
'\x3b'
chrw(59)
;
[0x0026] - &
&
&
'\x26'
chrw(38)
&
[0x002F] - /
/
/
'\x2f'
chrw(47)
/
[0x003D] - =
=
=
'\x3d'
chrw(61)
=
[0x0028] - (
(
(
'\x28'
chrw(40)
(
[0x0029] - )
)
)
'\x29'
chrw(41)
)
[0x005B] - [
[
[
'\x5b'
chrw(91)
[
[0x007B] - {
{
{
'\x7b'
chrw(123)
{
[0x007D] - }
}
}
'\x7d'
chrw(125)
}
[0x0023] - #
#
#
'\x23'
chrw(35)
#
[0x0060] - `
`
`
'\x60'
chrw(96)
`
[0x0024] - $
$
$
'\x24'
chrw(36)
$
Value
XmlEncode
[0x000A] - LINE FEED (LF)
[0x000B] - LINE TABULATION

[0x000C] - FORM FEED (FF)

[0x000D] - CARRIAGE RETURN (CR)
[0x0085] - NEXT LINE (NEL)
…
[0x008B] - PARTIAL LINE FORWARD
‹
[0x008D] - REVERSE LINE FEED

[0x2028] - LINE SEPARATOR


[0x2029] - PARAGRAPH SEPARATOR


[0x005C] - \
\
[0x0027] - '
'
[0x0022] - "
"
[0x003C] - <
<
[0x003E] - >
>
[0x003A] - :
:
[0x003B] - ;
;
[0x0026] - &
&
[0x002F] - /
/
[0x003D] - =
=
[0x0028] - (
(
[0x0029] - )
)
[0x005B] - [
[
[0x007B] - {
{
[0x007D] - }
}
[0x0023] - #
#
[0x0060] - `
`
[0x0024] - $
$
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.