HttpServletRequest UTF-8编码
我想从请求中获取参数(带有重音符的字符),但是它不起作用。我尝试使用,request.setCharacterEncoding("UTF-8")
但也没有用。
我知道URLDecoder.decode(request.getQueryString(),"UTF-8")
返回正确的字符,但request.getParameterValues()
不起作用!
有人有主意吗?
回答:
Paul的建议似乎是最好的做法,但如果要解决此问题,则根本不需要URLEncoder或URLDecoder:
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");
由于获得了很多选票,我想强调BalusC的观点,即这绝对不是解决方案。充其量是一种解决方法。人们不应该这样做。
我不知道是什么引起了最初的问题,但是我怀疑URL已经被UTF-8编码,然后又被UTF-8编码。
以上是 HttpServletRequest UTF-8编码 的全部内容, 来源链接: utcz.com/qa/397742.html