java中获取到参数的时候,这时候默认使用的是iso8859-1进行解码的,那么就再使用URLEncode的encoe方法对其进行编码一次,编码格式使用iso8859-1,这样我们就获得最初使用utf-8编码之后的字符了,接着再使用URLDecoder的decode方法对其进行解码,解码的时候第一个参数为编码之后的字符,第二个参数指定为utf-8,和编码时一样的码表就行,这样就获得正确的参数了。如下代码:
//获取使用iso8859-1解码之后的字符串 String username = request.getParameter("username"); //对使用iso8859-1解码后的字符串 使用iso8859-1进行编码 获得最初使用utf-8进行编码之后的字符串 username = URLEncoder.encode(username, "iso8859-1"); //对获得utf-8编码之后的字符串使用URLDecoder的decode方法解码 指定解码方式为utf-8 System.out.println(URLDecoder.decode(username, "utf-8"))