在浏览器中url带参数为中文,会出现编码不对

		try {
			request.setCharacterEncoding("utf-8");
		} catch (UnsupportedEncodingException e1) {
			// TODO Auto-generated catch block  
			e1.printStackTrace();
		}
		System.out.println(request.getRequestURI());
		System.out.println(request.getRequestURL());
		String s=request.getQueryString();
		Map<String, Object> params = new HashMap<>();
		try {
			String str = URLDecoder.decode(s, "utf-8");
			String arrStr[] = str.split("&");
			for (int i = 0; i < arrStr.length; i++) {
			String arrParm[]=arrStr[i].split("=");
			params.put(arrParm[0], arrParm[1]);
			}
			System.out.println(s);
			System.out.println(URLDecoder.decode(s, "utf-8"));
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block  
			e.printStackTrace();
		}

可能因为浏览器进行了编码操作 ,红色字体是进行解码的,问题解决

输出结果为

null
/hospital/v2/test
http://localhost:8080/hospital/v2/test
id=001&name=%E7%AB%A0%E7%A8%8B
id=001&name=章程

猜你喜欢

转载自blog.csdn.net/WNsshssm/article/details/80348659