2025-11-17 01:42:45 2010世界杯进球

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+ “¶m2=” + 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+ “¶m2=” + param2String);

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