不同浏览器向后台传值乱码,java,struts2,jsp,tomcat
向后台传入参数的时候,乱码,并且不同浏览器的解析也不同,IE:System.out.println(newString(json.getBytes("ISO-8859-1...
向后台传入参数的时候,乱码,并且不同浏览器的解析也不同,IE:
System.out.println(new String(json.getBytes("ISO-8859-1"),"GBK"));
这样可以解决问题,可是到了chrome/firefox
就得:System.out.println(new String(json.getBytes("GBK"),"UTF-8"));
我的tomcat connector设置的URIEncoding是"GBK"
这样可以解决IE乱码,可是解决不了chrome和firefox
如果设置"UTF-8",IE又乱了...chrome和firefox不乱..
jsp页面设置的是GBK,之前设置的"utf-8",2种传到后台都乱...
另外添加了filter也没有效果.....
跪求问题解决办法啊! 展开
System.out.println(new String(json.getBytes("ISO-8859-1"),"GBK"));
这样可以解决问题,可是到了chrome/firefox
就得:System.out.println(new String(json.getBytes("GBK"),"UTF-8"));
我的tomcat connector设置的URIEncoding是"GBK"
这样可以解决IE乱码,可是解决不了chrome和firefox
如果设置"UTF-8",IE又乱了...chrome和firefox不乱..
jsp页面设置的是GBK,之前设置的"utf-8",2种传到后台都乱...
另外添加了filter也没有效果.....
跪求问题解决办法啊! 展开
4个回答
展开全部
请使用<%@ page pageEncoding="UTF-8" %>页面编码
在<head></head>里加入<meta http-equiv="content-type" content="text/html; charset=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"),看见这个就蛋疼
展开全部
如果只有这两种情况暂时又找不到原因,简单的可以做下判断浏览器类型,然后分别转码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
保证提交的json数据编码和tomcat的URIEncoding编码一致。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是你的浏览器默认编码被你改了..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询