以什么方式提交的?get,post? setCharacterEncoding只对post内容有效,get的话看看浏览器的编码是什么。servlet是gbk的,源码的编码格式不影响运行吧,都是英文。
用户名密码是url还是body中,在body需要html Encode (decode),在url需要url encode(decode)。然后才是对应的编码!
是ur,不过url中文显示正常,不是什么%之类的,这样也要encode和decode吗
new string(byte,utf-8)
// 解决中文乱码问题
String encode = "UTF-8";
if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0
|| request.getHeader("User-Agent").toUpperCase().indexOf("TRIDENT") > 0 ) {// IE浏览器
encode = "GBK";
}
String param1 = new String(request.getParameter("param1").getBytes("ISO-8859-1"), encode);
String param2 = new String(request.getParameter("param2 ").getBytes("ISO-8859-1"), encode);
以上是针对兼容不同浏览器的乱码(目前只测试过:IE、360、google、mozillaFireFox);
如果您用的是tomcat,请在tomcat的server.xml配置文件中的connector元素标签添加URIEncoding = "UTF-8"
或者设置 request.setCharacterEncoding("UTF-8"),再修改tomcat的connector元素也行
我被这段代码坑了100遍了。不能解决所有问题。只能说一部分可以。
@wangjinming: 能把代码截个图出来看看吗