J2EE ajax中文乱码解决

        前几天在关于java web 开发中遇到的表单提交、ajax提交的乱码问题,纠结死了,找了下资料,终于发现解决方法,总结了一下,方便日后查找。

        1、html表单提交,在<input id="username" type="text" name="username" />文本框中输入中文提交到Servlet或JSP处理,即使对HttpServletRequest中的方法进行了设置req.setCharacterEncoding("gb2312");也不能解决中文乱码问题,但是英文则不会出现乱码,解决方法是用String的构造方法public String(byte bytes[], Charset charset),如:
        1)表单提交:
                              
<input class="zctext" id="username" type="text" name="username" /> 

        2)Servlet处理:
                              
String username = request.getParameter("username");  //得到参数
username = new String(username.getBytes("iso-8859-1"),"GB2312");//转换中文字符,gb2312编码!!

        这样就能显示中文,就可以对数据库进行进一步连接,否在乱码是不可能在数据库中有查询结果的。
        2、ajax提交Servlet处理。用jquery与用原生的javascript进行提交方式都差不多,对于提交中文则要进行编码解码,英文则木有问题。同上,即便用了HttpServletRequest中的方法进行了设置req.setCharacterEncoding("gb2312");也不能解决中文乱码,要进行编码 与解码,分别是javascript中的encodeURI($("#username").attr("value"))编码,和java中的public static String decode(String s, String enc)解码。
        1)ajax提交代码:
$.ajax({
            type:"POST",
            url:"jqcheck?do=login",//提交到URL映射为jqcheck的servlet处理
            data:{username:encodeURI($("#username").attr("value")),password:$("#password").attr("value")},
            success:function(data){
              if(data==2){
                alert("密码错误");
              }else if(data==3){
                alert("用户名不存在");
              }else {
                alert("登录成功哦!!");
              }
            }
          })

        主要是要对文本框的数据进行编码,对于<input class="zctext" id="username" type="text" name="username" /> 中的数据进行编码,先取得id为username的文本框的值,在进行编码encodeURI($("#username").attr("value"))。
        2)jqcheck的servlet处理代码:
                   
 String username = req.getParameter("username");//得到参数
 username = java.net.URLDecoder.decode(username, "UTF-8");///对ajax进行URLdecode解码

        这样就可以了。。
阅读更多
个人分类: java J2EE & SSH
想对作者说点什么? 我来说一句

J2EE乱码问题解决方法

2009年04月24日 4KB 下载

JSP中文乱码解决集锦

2010年11月09日 40KB 下载

AJAX乱码解决大全.doc

2012年12月01日 31KB 下载

express中文乱码解决

2017年11月19日 62B 下载

securecrt中文乱码解决

2015年06月19日 407B 下载

oracle中文乱码解决

2017年08月30日 193KB 下载

java项目编译时中文乱码解决

2012年09月20日 13KB 下载

smarty truncate中文乱码解决

2014年08月12日 841B 下载

没有更多推荐了,返回首页

不良信息举报

J2EE ajax中文乱码解决

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭