解决3.01版的jquery.form.js中文乱码问题的解决方法


Posted in Javascript onMarch 08, 2012

网上搜了很多方法,可能因为我用的这jquery.form.js是3.01版,也就是今年3月6日才发布的版本(汗。。。就是前天),所以普遍不太管用。至于低版本的是否管用,这个我没有去考证,但大部分还是不负责任的Copy Copy Copy 。还有一些方法是在提交前对所有的值先编码,我觉得这个太麻烦,额外增加了不少的前端代码量,也就没有采取。
好吧,那还是自己来处理吧。首先我们要找到切入点,也就是解决问题的入口。既然我们是要对JS传递的数据进行编码,那么首先肯定要从数据的传递函数开始。我调用的是ajaxSubmit函数,就是它了。打开js文件,找到这个函数,看源码,发现有一行:

var qx, a = this.formToArray(options.semantic);

formToArray的作用是把采集到的表单数据转换成对象数组,然后传递到$.get、$.post 等Ajax函数。我觉得有戏了。不过接下去的代码几百行,为节省时间,还是直入主题吧。我在上面那行设置断点,在Web页面输入中文数据,通过JS一步步调试来理解该源码。程序执行之后,几经跳转,最后在fieldValue这个函数的最后部分,终于找到了:
return $(el).val();

这样,我们只要在这里进行客户端的编码即可:
return escape($(el).val());

然后在服务器端,可以用 Server.UrlDecode() 进行解码,这样乱码就不在出现了,可以正确的接受中文字符了~~~

大家有什么好的方法或者建议也可以提出来。

Javascript 相关文章推荐
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
May 24 Javascript
javascript 常用功能总结
Mar 18 Javascript
js substring从右边获取指定长度字符串(示例代码)
Dec 23 Javascript
javaScript使用EL表达式的几种方式
May 27 Javascript
js实现的tab标签切换效果代码分享
Aug 25 Javascript
Jquery时间轴特效(三种不同类型)
Nov 02 Javascript
jQuery简单获取键盘事件的方法
Jan 22 Javascript
jQuery插件实现文字无缝向上滚动效果代码
Feb 25 Javascript
AngularJS 所有版本下载地址
Sep 14 Javascript
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
Oct 17 Javascript
详谈js模块化规范
Jul 07 Javascript
详解Vue CLI 3.0脚手架如何mock数据
Nov 23 Javascript
Node.js实战 建立简单的Web服务器
Mar 08 #Javascript
使用UglifyJS合并/压缩JavaScript的方法
Mar 07 #Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
Apr 13 #Javascript
node.js 一个简单的页面输出实现代码
Mar 07 #Javascript
服务器端的JavaScript脚本 Node.js 使用入门
Mar 07 #Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
Mar 07 #Javascript
拥抱模块化的JavaScript
Mar 07 #Javascript
You might like
珊瑚虫IP库浅析
2007/02/15 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
js验证表单第二部分
2006/11/25 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
Node.js Streams文件读写操作详解
2016/07/04 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
微信小程序中如何使用flyio封装网络请求
2019/07/03 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
卸载vue2.0并升级vue_cli3.0的实例讲解
2020/02/16 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
2020/07/18 Javascript
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
python实现的简单猜数字游戏
2015/04/04 Python
Python中处理时间的几种方法小结
2015/04/09 Python
python嵌套函数使用外部函数变量的方法(Python2和Python3)
2016/01/31 Python
基于Python数据分析之pandas统计分析
2020/03/03 Python
Python实现扫码工具的示例代码
2020/10/09 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
纯CSS3发光分享按钮的实现教程
2014/09/06 HTML / CSS
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
高级方案规划工程师岗位职责
2013/11/29 职场文书
中专自我鉴定
2014/02/05 职场文书
生物制药专业求职信
2014/03/11 职场文书
优秀毕业生自荐信
2014/06/10 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
2014年小学教师工作总结
2014/11/10 职场文书
优秀员工演讲稿
2019/06/21 职场文书
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript