URLEncoder.encode()解决中文乱码

tomcat服务器上向指定 URL 发送GET/POST方法的请求中文编码问题解决

使用URLEncoder.encode()方法解决Tomcat发送HTTP请求中文参数乱码的问题

在Javaweb项目中,需要在Tomcat服务器下发送HTTP请求,有时候参数会带有中文字符,无论是修改tomcat配置文件的server.xml文件中的编码规则,还是在项目的web.xml修改字符拦截器都解决不了问题。一筹莫展的时候,突然发现了可以使用URLEncoder.encode()方法来解决中文乱码问题。

直接上代码

//参数param2是中文字符串 String result = sendPost(“http:xxxx/xxxx/xxxx.index”, “param1=” + param1String+ “&param2=” + param2String); /** * 向指定 URL 发送POST方法的请求 * * @param url 发送请求的 URL * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return 所代表远程资源的响应结果 */ private static String sendPost(String url, String param) { //就是正常发送post请求的代码 }

如果按照上面的方式调用,使用Java Application运行是没有问题的,但是放在Tomcat上就会出现问题,尽管也能正常发送post请求,但是中文字符串会出现乱码,请求返回的结果自然就不是我们想到得到的。经过不断的尝试各种方法,最终使用URLEncoder.encode()解决了问题。

在发送post请求前,先把中文字符使用URLEncoder.encode()方法转码,中文乱码这个问题轻松解决。

String param2= URLEncoder.encode(param2String, “UTF-8”); String result = sendPost(“http:xxxx/xxxx/xxxx.index”, “param1=” + param1String+ “&param2=” + param2String);

GET请求也类似,在使用URL发送HTTP请求之前,先把中文字符通过URLEncoder.encode()方便转码,中文乱码的问题迎刃而解。

经验分享 程序员 微信小程序 职场和发展