问题描述
我的jsp页面时UTF-8,在java端httpRequest也是UTF-8,ajax提交的时候Content-Type也是application/x-www-form-urlencoded,但是ajax提交的时候java端获取到的数据却是中文乱码,表单提交一切正常,求解!
解决方案
解决方案二:
楼主的情况我也遇到过,在页面发送请求的时候先转码一次:encoudeurl();然后取出的时候在decodde转一次.我写的两个关键字可能不正确.
解决方案三:
ajax提交默认的编码方式是utf-8,java中一般都采用unicode编码,试试这样:在页面提交的时候做转码:value=encodeURIComponent(value);这个动作执行两次,然后再java端调用value=URLDecoder.decode(value,"UTF-8");就可以得到正确编码。
解决方案四:
ajax:name=encodeURI(encodeURI(name));java:java.net.URLDecoder.decode(name,"UTF-8");
解决方案五:
引用2楼gray_sky的回复:
ajax提交默认的编码方式是utf-8,java中一般都采用unicode编码,试试这样:在页面提交的时候做转码:value=encodeURIComponent(value);这个动作执行两次,然后再java端调用value=URLDecoder.decode(value,"UTF-8");就可以得到正确编码。
早实过了无用
解决方案六:
乱码有时确实很难解决~~~曾经也困惑过
解决方案七:
引用4楼folmos0123456的回复:
引用2楼gray_sky的回复:ajax提交默认的编码方式是utf-8,java中一般都采用unicode编码,试试这样:在页面提交的时候做转码:value=encodeURIComponent(value);这个动作执行两次,然后再java端调用value=URLDecoder.decode(value,"UTF-8");就可以得到正确编码。早实过了无用
jquery乱码解决方法很多,不同情况解决不同,2楼的算是常用的方法,如果不好使,楼主就google一下,很多解决方法。
解决方案八:
会不会是你用了两次转码之后,反而无效了
解决方案九:
下面是我的解决办法Strut2+MySql+Hibernate+ajax(jQuery)中文乱码解决办法:1.网页页面使用utf-8<metahttp-equiv="Content-type"content="text/html;charset=utf-8">2.ajax默认使用utf-8传输数据,但最好使用post,不要使用get3.Struts2中使用UTF-8.3.1在struts.properties中加上:struts.i18n.encoding=UTF-8[3.2使用Filter:从页面中传输数据到Struts2,需要使用过滤器把数据在交给struts2前转换成utf-8的:http://stevieliu.blogchina.com/stevieliu/6223098.html]试过不使用3.2照常可以收到中文.4.数据库也要使用utf-8,在建表时设置好.http://imysql.cn/charset_tips5.hibernate.cf.xml配置文件中与数据库的连接符串也要标明使用的编码为utf-8:<propertyname="hibernate.connection.url">jdbc:mysql://localhost:3306/mlm?useUnicode=true&characterEncoding=UTF-8</property>6:Tomcat也使用UTF-86.1:Tomcat/bin/catalina.bat中开始部分(大概51行处)添加setCATALINA_OPTS=-Dfile.encoding=UTF-8或CATALINA_OPTS="$CATALINA_OPTS-Dfile.encoding=UTF-8"6.2:<ConnectorURIEncoding="utf-8"port="8080"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"/>Eclipse启动Tomcat会修改Tomcat的运行编码环境,从终端启动的又是另一种编码环境,所以Tomcat的配置也要手动修改7:HttpServletResponse(request)也要设置编码:response.setCharacterEncoding("UTF-8");
解决方案十:
页面传参表现实行xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlHttp.send("id="+encodeURI(id)+"&question="+encodeURI(qq));就ok
解决方案十一:
按照楼主说的应该是没有问题的不过httpRequest设置编码只有form以post方式提交时才有效