我想从请求中获取参数(带重音符号的字符),但它不起作用。我尝试使用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");
Update:由于这得到了很多选票,我想强调 BalusC 的观点,这绝对不是一个解决方案;这充其量只是一种解决方法。人们不应该这样做。
我不知道到底是什么导致了最初的问题,但我怀疑 URL 已经是 UTF-8 编码的,然后又被 UTF-8 编码了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)