当前位置:编程学习 > JAVA >>

ckeditor的中文内容传入后台乱码

  前台用js  CKEDITOR.instances.cont.getData();获得ckditor的内容,交给后台的struts处理,struts定义了一个拦截器将/*都转成GBK编码,但是接受ckeditor的中文内容还是乱码。怎么解决?
<script type="text/javascript" src="jquery-2.0.0.js"></script>
<script type="text/javascript">
function save(){
  $.ajax({
   url:'live.action'
   ,type:'POST'
   ,data:$(document.form1).serialize()
   ,success:function(data){
       ////不知道java,到底执行完action后返回什么。。自己根据action的返回值判断下data看是否正确执行了
   }
   ,error:function(){alert('发生错误');}
  });
    }
</script>

<form action="" method="post" onSubmit="save()" name="form1">
  
          <textarea name="cont"></textarea>
          <script type="text/javascript" src="ckeditor/ckeditor.js"></script> 
  <script type="text/javascript"> 
<!-- 
CKEDITOR.replace("cont"); 
//--> 
  </script>
  <input type="hidden" name="title" value=""> 
  <script type="text/javascript">
    function getContent(){
    var c = CKEDITOR.instances.cont.getData();
    alert(c);
    document.forms("form1").elements("title").value = c;
    }
  </script>
          <input type="submit" value="提交" onclick="getContent()">
          </form> 

struts.xml
  <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
           <param-name>encoding</param-name>
           <param-value>GBK</param-value>
        </init-param>
  </filter>
    
  <filter-mapping>
         <filter-name>encodingFilter</filter-name>
         <url-pattern>/*</url-pattern>
  </filter-mapping>  
乱码 ckeditor --------------------编程问答-------------------- form表单post提交默认是采用UTF-8对表单数据进行编码的,而
post的编码是可以通过
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
进行设置的,
只要你表单数据提交时的编码和 你后台接收表单数据时的解码字符集是一致的,就不会出现乱码.
不懂再追问,
Java飞虎队欢迎各路菜鸟老鸟加入一起交流讨论。群号105098806 --------------------编程问答--------------------
引用 1 楼 u010741602 的回复:
form表单post提交默认是采用UTF-8对表单数据进行编码的,而
post的编码是可以通过
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
进行设置的,
只要你表单数据提交时的编码和 你后台接收表单数据时的解码字符集是一致的,就不会出现乱码.
不懂再追问,
Java飞虎队欢迎各路菜鸟老鸟加入一起交流讨论。群号105098806

我将<meta http-equiv="Content-Type" content="text/html; charset=GBK" />了,但是还是不行 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 3 楼 u010741602 的回复:
src下的Struts.xml里添加如下两项常量设置:
<constant name="struts.locale" value="GBK"/>
<constant name="struts.i18n.encoding" value="GBK"/>
不行再追问,最后推广下我的Java群,嘿嘿!
 Java飞虎队欢迎各路菜鸟老鸟加入一起交流讨论。群号105098806

试过了,还是不行,我感觉应该是ckeditor或者Jquery异步提交的问题,因为之前的input等提交中文在后台不会乱码 --------------------编程问答-------------------- 改后应该可以的,你修改了struts.xml后有重新部署吗?
2B版主,你已经禁了我两个帐号了哈,我不过就推广下自己的Java群而已,你封吧,我就累点再注册一个好嘞,不跟你计较! --------------------编程问答--------------------
引用 5 楼 u010758124 的回复:
改后应该可以的,你修改了struts.xml后有重新部署吗?
2B版主,你已经禁了我两个帐号了哈,我不过就推广下自己的Java群而已,你封吧,我就累点再注册一个好嘞,不跟你计较!

重新部署了
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,