J2EE ajax中文乱码解决_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
4
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2375 | 回复: 3   主题: J2EE ajax中文乱码解决        下一篇 
    本主题由 koei123 于 2015-6-1 14:41:51 移动
wangujc
注册用户
等级:上尉
经验:721
发帖:20
精华:0
注册:2015-5-28
状态:离线
发送短消息息给wangujc 加好友    发送短消息息给wangujc 发消息
发表于: IP:您无权察看 2015-6-1 9:42:20 | [全部帖] [楼主帖] 楼主

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

        1)表单提交:

        
    <inputclass="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  Stringdecode( 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(
    "密码错误");
          }elseif(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解码


        这样就可以了。。

该贴由koei123转至本版2015-6-1 14:41:51



赞(0)    操作        顶端 
tuhao
注册用户
等级:少尉
经验:339
发帖:2
精华:0
注册:2015-5-6
状态:离线
发送短消息息给tuhao 加好友    发送短消息息给tuhao 发消息
发表于: IP:您无权察看 2015-6-2 8:48:13 | [全部帖] [楼主帖] 2  楼

北京联动北方科技有限公司,可以



赞(0)    操作        顶端 
hei_nihao
注册用户
等级:少校
经验:1279
发帖:19
精华:0
注册:2015-4-17
状态:离线
发送短消息息给hei_nihao 加好友    发送短消息息给hei_nihao 发消息
发表于: IP:您无权察看 2015-6-2 8:52:53 | [全部帖] [楼主帖] 3  楼

是,说的不错!



赞(0)    操作        顶端 
yr
注册用户
等级:少校
经验:1085
发帖:5
精华:0
注册:2015-1-19
状态:离线
发送短消息息给yr 加好友    发送短消息息给yr 发消息
发表于: IP:您无权察看 2015-6-2 10:47:25 | [全部帖] [楼主帖] 4  楼

嗯 方法很多 这也是一种



赞(0)    操作        顶端 
总帖数
4
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论