ajax发送端应该把包含有中文参数的url编码2次如下: var url="savePoints.jsp?lng="+lng+"&lat="+lat+"&high="+altitude+"&address="+address+"&info="+info+"×tamp="+new Date().getTime(); url=encodeURI(encodeURI(url));//一定要是2层编码 $.post(url,function(data){alert("保存成功!");}); action接收端在取中文参数时应该解码如下才能恢复成中文 import java.util.*,java.text.*; String info = java.net.URLDecoder.decode(request.getParameter("info"),"utf-8"); 而接收结果乱码则需要通常的情况是在web.xml中加字符过滤器,
<filter-name>characterEncodingFilter</filter-name>
<filter-
class
>org.springframework.web.filter.CharacterEncodingFilter</filter-
class
>
<init-param></init-param>
<param-name>encoding</param-name>
<param-value>UTF-
8
</param-value>
<init-param> </init-param>
<param-name>forceEncoding</param-name>
<param-value>
true
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
或者
</filter-mapping>
public
String businessShop(HttpServletResponse response, HttpServletRequest request){
response.setCharacterEncoding(
"utf-8"
);
//业务逻辑(这个response是直接能用的)
或者 ServletActionContext.getResponse().setContentType("text/json;charset=UTF-8");//解决乱码问题,没有这句,回调函数的内容可能乱码 ServletActionContext.getResponse().getWriter().write("字符串内容");//在写入之前执行上面一句,可以解决乱码
}
ajax发送请求乱码
最新推荐文章于 2023-11-15 16:23:01 发布