@@ -30,6 +30,7 @@ public final class Utf8UrlEncoder {
30
30
public final static BitSet RFC3986_UNRESERVED_CHARS = new BitSet (256 );
31
31
public final static BitSet RFC3986_RESERVED_CHARS = new BitSet (256 );
32
32
public final static BitSet RFC3986_SUBDELIM_CHARS = new BitSet (256 );
33
+ public final static BitSet RFC3986_PCHARS = new BitSet (256 );
33
34
public final static BitSet BUILT_PATH_UNTOUCHED_CHARS = new BitSet (256 );
34
35
public final static BitSet BUILT_QUERY_UNTOUCHED_CHARS = new BitSet (256 );
35
36
// http://www.w3.org/TR/html5/forms.html#application/x-www-form-urlencoded-encoding-algorithm
@@ -89,16 +90,19 @@ public final class Utf8UrlEncoder {
89
90
RFC3986_RESERVED_CHARS .set ('[' );
90
91
RFC3986_RESERVED_CHARS .set (']' );
91
92
92
- BUILT_PATH_UNTOUCHED_CHARS .or (RFC3986_UNRESERVED_CHARS );
93
+ RFC3986_PCHARS .or (RFC3986_UNRESERVED_CHARS );
94
+ RFC3986_PCHARS .or (RFC3986_SUBDELIM_CHARS );
95
+ RFC3986_PCHARS .set (':' );
96
+ RFC3986_PCHARS .set ('@' );
97
+
98
+ BUILT_PATH_UNTOUCHED_CHARS .or (RFC3986_PCHARS );
93
99
BUILT_PATH_UNTOUCHED_CHARS .set ('%' );
94
- BUILT_PATH_UNTOUCHED_CHARS .or (RFC3986_SUBDELIM_CHARS );
95
- BUILT_PATH_UNTOUCHED_CHARS .set (':' );
96
- BUILT_PATH_UNTOUCHED_CHARS .set ('@' );
97
100
BUILT_PATH_UNTOUCHED_CHARS .set ('/' );
98
101
99
- BUILT_QUERY_UNTOUCHED_CHARS .or (RFC3986_UNRESERVED_CHARS );
100
- BUILT_QUERY_UNTOUCHED_CHARS .or (RFC3986_RESERVED_CHARS );
102
+ BUILT_QUERY_UNTOUCHED_CHARS .or (RFC3986_PCHARS );
101
103
BUILT_QUERY_UNTOUCHED_CHARS .set ('%' );
104
+ BUILT_QUERY_UNTOUCHED_CHARS .set ('/' );
105
+ BUILT_QUERY_UNTOUCHED_CHARS .set ('?' );
102
106
}
103
107
104
108
private static final char [] HEX = "0123456789ABCDEF" .toCharArray ();
0 commit comments