解决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 相关文章推荐
用javascript实现自定义标签
May 08 Javascript
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
Mar 07 Javascript
HTML5之lang属性与dir属性的详解
Jun 19 Javascript
JS按字节截取字符长度实例
Nov 20 Javascript
jQuery中dequeue()方法用法实例
Dec 29 Javascript
模拟javascript中的sort排序(简单实例)
Aug 17 Javascript
javascript常用经典算法详解
Jan 11 Javascript
js定时器实现倒计时效果
Nov 05 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
Nov 06 Javascript
JS+Canvas绘制动态时钟效果
Nov 10 Javascript
浅析vue给不同环境配置不同打包命令
Aug 17 Javascript
详解Vue的watch中的immediate与watch是什么意思
Dec 30 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
使用PHP维护文件系统
2006/10/09 PHP
php数组键值用法实例分析
2015/02/27 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
javascript实现全角与半角字符的转换
2015/01/07 Javascript
浅谈js中调用函数时加不加括号的问题
2016/07/28 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
vue中实现methods一个方法调用另外一个方法
2018/02/08 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
python使用pycharm环境调用opencv库
2018/02/11 Python
pandas删除指定行详解
2019/04/04 Python
OpenCV 轮廓检测的实现方法
2019/07/03 Python
简单了解python PEP的一些知识
2019/07/13 Python
python numpy实现rolling滚动案例
2020/06/08 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
2021/03/01 Python
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
北美三大旅游网站之一:Travelocity加拿大
2016/08/20 全球购物
12岁生日感言
2014/01/21 职场文书
留学自荐信写作方法
2014/01/27 职场文书
临床护士自荐信
2014/01/31 职场文书
爱心倡议书范文
2014/05/12 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
好人好事演讲稿
2014/09/01 职场文书
五一劳动节演讲稿
2014/09/12 职场文书
离职报告格式
2014/11/04 职场文书
委托公证书样本
2015/01/23 职场文书
售房协议书范本
2015/08/11 职场文书