不同浏览器向后台传值乱码,java,struts2,jsp,tomcat

2024-12-16 13:47:16
推荐回答(4个)
回答1:

请使用<%@ page pageEncoding="UTF-8" %>页面编码

在里加入

使用POST提交方式

public void doFilter(..) {
    req.setCharacterEncoding("UTF_8");
    resp.setContentType("text/html; charset=UTF-8");
    resp.setCharacterEncoding("UTF_8");
}

要保证过滤器处理编码逻辑在request获取第一个提参数之前(过滤器在最前面)


GET提交方式

请使用Javascript先encodeURI(encodeURI(url))处理一下在提交,后端java.net.URLDecoder获取


另外没事干不要修改Tomcat, URIEncoding


还有不要到处写new String(json.getBytes("ISO-8859-1"),"GBK"),看见这个就蛋疼

回答2:

如果只有这两种情况暂时又找不到原因,简单的可以做下判断浏览器类型,然后分别转码

回答3:

保证提交的json数据编码和tomcat的URIEncoding编码一致。

回答4:

是不是你的浏览器默认编码被你改了..