Details
Description
Class URIParserUtil. Function escapeChars(String s) produces incorrect result for characters, which utf-8 representation is greater than 1 byte length.
For example, character "ц" ([-47, -122] in utf-8) is encoded as "%d861", but expected value is "%d186".
This patch should fix the problem.
--- URIParserUtil.java 2011-10-11 18:02:59.786548800 +0400 +++ URIParserUtil.java 2011-10-11 18:03:09.544548800 +0400 @@ -236,8 +236,9 @@ b.setCharAt(x++, '%'); for (int y = 0; y < bytes.length; y++) { b.insert(x++, HEX_DIGITS.charAt((bytes[y] & 0xFF) >> 4)); - b.insert(x, HEX_DIGITS.charAt(bytes[y] & 0x0F)); + b.insert(x++, HEX_DIGITS.charAt(bytes[y] & 0x0F)); } + x--; } catch (UnsupportedEncodingException e) { //should not happen }