解决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 CSS菜单功能 改进版
Dec 20 Javascript
JAVASCRIPT  THIS详解 面向对象
Mar 25 Javascript
Prototype 学习 工具函数学习($A方法)
Jul 12 Javascript
5个最佳的Javascript日期处理类库分享
Apr 15 Javascript
js上传图片及预览功能实例分析
Apr 24 Javascript
jquery编写Tab选项卡滚动导航切换特效
Jul 17 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
Apr 24 Javascript
JS实现马赛克图片效果完整示例
Apr 13 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
May 31 Javascript
vue实现拖拽的简单案例 不超出可视区域
Jul 25 Javascript
微信小程序实现导航栏和内容上下联动功能代码
Jun 29 Javascript
swiper自定义分页器的样式
Sep 14 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使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
PHP实现的简单排列组合算法应用示例
2017/06/20 PHP
php实现算术验证码功能
2018/12/05 PHP
JavaScript 动态改变图片大小
2009/06/11 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
javascript对象的创建和访问
2016/03/08 Javascript
nodejs后台集成ueditor富文本编辑器的实例
2017/07/11 NodeJs
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
2018/12/11 jQuery
微信小程序基于高德地图查找位置并显示文字
2019/10/30 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
extjs图形绘制之饼图实现方法分析
2020/03/06 Javascript
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
python进行两个表格对比的方法
2018/06/27 Python
浅谈matplotlib中FigureCanvasXAgg的用法
2020/06/16 Python
python中altair可视化库实例用法
2021/01/26 Python
英国美术用品购物网站:Cass Art
2019/10/08 全球购物
Lentiamo比利时:便宜的隐形眼镜
2020/02/14 全球购物
请写出一段Python代码实现删除一个list里面的重复元素
2015/12/29 面试题
后勤人员自我鉴定
2013/10/20 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
物流管理专业求职信
2014/05/29 职场文书
会计试用期自我评价
2015/03/10 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
运动会开幕式主持词
2015/07/01 职场文书
2016年公共机构节能宣传周活动总结
2016/04/05 职场文书
2019各种保证书范文
2019/06/24 职场文书
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python