J2EE ajax中文乱码解决

原创 2011年12月15日 10:45:27

        前几天在关于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解码

        这样就可以了。。

J2EE中get方式和post请求方式乱码的解决办法

J2EE中中文乱码的问题 J2EE中中文乱码的问题主要就是出现在浏览器给服务器提交参数数据的时候出现的。而浏览器与服务器传递数据的方式有两种 ①post提交方式,因为post提交方式都是把请求参数...
  • nihaowoshiyudong
  • nihaowoshiyudong
  • 2016年12月05日 15:18
  • 719

ajax中文乱码解决

  • YiYaYo
  • YiYaYo
  • 2007年07月19日 09:54
  • 735

ajax中文乱码解决 [转]

alimama_pid="mm_10809884_1047205_2744758"; alimama_titlecolor="0000FF"; alimama_descolor ="000000";...
  • Xviewee
  • Xviewee
  • 2007年11月24日 18:52
  • 1136

Ajax返回值--中文乱码解决

之前是PrintWriter out=response.getWriter();    response.setContentType("text/xml;charset=UTF-8");    ...
  • u011955534
  • u011955534
  • 2014年02月25日 15:31
  • 1547

Ajax中文乱码解决

Ajax中文乱码解决
  • baalhuo
  • baalhuo
  • 2016年03月27日 15:20
  • 348

AJAX中文乱码解决

以下是我的AJAX中文乱码的解决方案: 客户端对url进行两次转码:(str可能是中文)1.... 2.var url = 'policy.do?method=searchSuggest&w...
  • wan368500
  • wan368500
  • 2012年07月19日 10:27
  • 397

asp.net ajax中文乱码解决

今天自己做个项目碰到了传中文,接受时乱码,如下:发送:function GetJCKSettingsAdd(state){ oDiv = $("loading"); oDivContent...
  • lfywy
  • lfywy
  • 2009年02月05日 10:34
  • 1368

Ajax中文乱码解决总结

我使用Ajax传数据常常遇到乱码问题,前端和后台后有可能出现,下面总结一下Ajax传数据可能遇到的问题和解决方案,任何一点都可能造成乱码问题。我使用java servlet写后台,ajax传数据 1...
  • zengxyuyu
  • zengxyuyu
  • 2016年09月18日 11:15
  • 262

ajax中文乱码解决

解决AJAX传送中文会导致乱码的问题 //如果传送参数是直接赋予的,就会产生乱码!http_request.open("POST",url,true); http_request.setRequest...
  • loyos
  • loyos
  • 2006年08月04日 10:39
  • 2353

ajax提交中文乱码解决

首先,你要知道get和post是两种不同的提交方式。 当你的type为post时,参数不可以写到url路径之后,而应该加一个data:"clientName="+clientName; 一、web...
  • tianhe8
  • tianhe8
  • 2015年04月16日 15:11
  • 441
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:J2EE ajax中文乱码解决
举报原因:
原因补充:

(最多只允许输入30个字)