HttpServletRequest UTF-8 Encoding [duplicate]

Paul’s suggestion seems like the best course of action, but if you’re going to work around it, you don’t need URLEncoder or URLDecoder at all:

String item = request.getParameter("param"); 

byte[] bytes = item.getBytes(StandardCharsets.ISO_8859_1);
item = new String(bytes, StandardCharsets.UTF_8);

// Java 6:
// byte[] bytes = item.getBytes("ISO-8859-1");
// item = new String(bytes, "UTF-8");

Update: Since this is getting a lot of votes, I want to stress BalusC’s point that this definitely is not a solution; it is a workaround at best. People should not be doing this.

I don’t know exactly what caused the original issue, but I suspect the URL was already UTF-8 encoded, and then was UTF-8 encoded again.

Leave a Comment