中文传值火狐、google浏览器无有关问题,但IE有乱码有关问题的解决
中文传值火狐、google浏览器无问题,但IE有乱码问题的解决
点击后打开新页面,用户登录!用户名为中文时,火狐、google浏览器无问题,但IE有乱码问题:
问题代码:
<a href="member!sysLogin.do?name='${member.uname }'" target="_blank" />登录</a>
超链接形式的传参,都是Get方式!
public String sysLogin(){ try{ name=new String(name.getBytes("iso-8859-1"),"utf-8"); int r = this.memberManager.loginbysys(name); if(r==1){ return "syslogin"; } this.msgs.add("登录失败"); }catch(RuntimeException e){ this.msgs.add(e.getMessage()); } catch (UnsupportedEncodingException e) { this.msgs.add(e.getMessage()); } return this.MESSAGE; }
修改成功:
<a href="javascript:toSysLogin('${member.uname }');" />登录</a> function toSysLogin(name){ var uriname="member!sysLogin.do?name="+name; window.open( encodeURI(uriname)); }
public String sysLogin(){ try{ this.setName(java.net.URLDecoder.decode(name, "UTF-8"));// 此处转码 name=new String(name.getBytes("iso-8859-1"),"utf-8"); int r = this.memberManager.loginbysys(name); if(r==1){ return "syslogin"; } this.msgs.add("登录失败"); }catch(RuntimeException e){ this.msgs.add(e.getMessage()); } catch (UnsupportedEncodingException e) { this.msgs.add(e.getMessage()); } return this.MESSAGE; }
问题解决!
encode编码
decode解码