JS编码转换(SringMVC框架下的KindEditor文本框数据丢失)(包括中文和特殊字符)
来源:互联网 发布:股票网上开户软件 编辑:程序博客网 时间:2024/06/07 15:33
很久没有写博客了,也很久没有写代码,重写Blog之前,聊发几句,以此慰藉时间的飞逝。
现在接到几份Offer,比较好的有3家,但是南京就这么大,好公司就那点儿,真的让我很烦恼,有时候过多的选择也是一种负担。今后在好好写2年代码,提升一下自己。记
录下自己的心得,也分享于给位同仁。
前言完。
最近公司项目的任务很少,和朋友接了个APP的私活,其中发布新闻时需要用到富文本,参考了很久选择了KindEditor这个插件。
这次Blog只讲一下其中遇到的JS编码转换的问题。
------------------------
新闻发布功能,肯定要有很多文本功能,因为页面功能繁多,又需要用到【图片/文件异步加载】功能,所以,一个JSP页面分了几个FORM表单,分别操作自己的FORM表
单,互不干扰。
因为只要局部提交数据,并且返回列表页面,所以只用了【ajax】提交数据,没有用【submit】,那么所有的参数都是取值后手动拼写而成。
那么,问题来了!!!
代码如下:
下面部分都是页面参数的值,当然了,最主要的问题就是artContent这里,大家请留意。
var artNum = $("#artNumId").val();var artType = $("#artTypeSelectId").val();var artTitle = $("#artTitleId").val();var artBigImg = $("#artBigImgId").val();var artPerson = $("#artPersonId").val();var artContent = $("#content_1").val();var artMinImg = $("#artMinImgId").val();var isSendObj = $("#isSendId");var artOperator = $("#artOperatorId").val();var artLabel = $("#contentLabelSelId").val();var artTime = $("#timeLabelSelId").val();
//开始没有这句话
artContent = escape(encodeURIComponent(artContent));
$.ajax({type:"post",url:"Pc200103",dataType:"text",data:"artNum="+artNum+"&artType="+artType+"&artTitle="+artTitle+"&artBigImg="+artBigImg+"&artPerson="+artPerson"+"&artContent="+artContent+"&artMinImg="+artMinImg+"&isSend="+isSend+"&artCheck="+artCheck+"&artOperator="+artOperator+"&artLabel="+artLabel+"&artTime="+artTime,success:function(responseText){p_articleManage(1);},error:function(XMLHttpRequest, textStatus, errorThrown){alert(XMLHttpRequest.status);}});
</pre><p> 因为富文本编辑,会存在很多空格,回车,换行,tab等特殊字符,在这次项目中,编辑富文本时候,如果敲一下空格,那么是占了半个字节,所以只是【半个空格①】,如果敲两下空格,那么就是一整个字节了,KindEditor会自动转换为【 】 ,那么问题来了!</p><p> 因为ajax传输时候字符串就是用&拼接而成,那么现在富文本中又存在这样的 就会发生识别错误的问题,大家应该能理解这个地方的问题所在吧。</p><p> 下面就是我要说的如何去转换字符了。JS自带的转换编码有3中,分别如下:</p><p> </p><pre class="html" name="code"> escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
artContent = escape(encodeURIComponent(artContent));
我项目中所遇到的就是&字符导致数据丢失,所以需要选择最后一种编码方式,而普通的中文编码,只需要用第二种格式即可。后台取值时候用如下代码即可:
String artContent = req.getParameter("artContent"); artContent=java.net.URLDecoder.decode(artContent,"UTF-8");
如此,就能解决了该问题,当然每个人遇到的情况不一样,所需要的东西也不同。我之前就是纯粹的中文乱码问题了。
不想写了,总觉得没那么有耐心了,慢慢来吧。
如果有什么问题,希望各位指正,如果有需要讨论的,也可以加我的QQ:3674585
- JS编码转换(SringMVC框架下的KindEditor文本框数据丢失)(包括中文和特殊字符)
- 用URL传参带特殊字符,特殊字符丢失[总结]和中文乱码(ZT)
- QT下中文字符编码的转换
- QT下中文字符编码的转换
- 在js中处理特殊字符对应的中文编码
- unicode字符范围(包括中文、日语、韩文和各种特殊字符集)
- 关于URL传输中文和特殊字符的编码方法
- Unicode中文和特殊字符的编码范围
- Unicode中文和特殊字符的编码范围
- Unicode中文和特殊字符的编码范围
- Unicode中文和特殊字符的编码范围
- Unicode中文和特殊字符的编码范围
- Unicode中文和特殊字符的编码范围
- Unicode编码——中文和特殊字符的范围
- Unicode中文和特殊字符的编码范围
- 关于Sringmvc开发 api 与 app 数据传输特殊字符(如%)转义问题
- 特殊字符转换和中文乱码
- 中文字符编码的相互转换(一)
- gradle的简单依赖配置
- Collect preferences failed, class java/lang/AutoCloseable not found in C:\Program Files (x86)\Androi
- [LeetCode][Java] Combination Sum
- 如何取得一定范围内的随机数
- solr4.9服务器搭建
- JS编码转换(SringMVC框架下的KindEditor文本框数据丢失)(包括中文和特殊字符)
- Volley框架支持HTTPS请求
- 面向对象五大原则_1.单一职责原则&2.里氏替换原则
- 二分查找
- Unity3d变换组件(Transform)
- Highcharts根据图例高度扩展图表高度
- Scala : Tuple、Array、Map、文件操作
- mybatis入门
- 自动化测试中,用到File类的相关代码