解决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 相关文章推荐
IE和Firefox在JavaScript应用中的兼容性探讨
Apr 01 Javascript
JavaScript isPrototypeOf和hasOwnProperty使用区别
Mar 04 Javascript
jQuery Select(单选) 模拟插件 V1.3.62 改进版
Jul 17 Javascript
JavaScript 浏览器验证代码(来自discuz)
Jul 17 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
Jul 10 Javascript
javascript 秒表计时器实现代码
Mar 09 Javascript
vue省市区三联动下拉选择组件的实现
Apr 28 Javascript
highcharts 在angular中的使用示例代码
Sep 20 Javascript
javascript实现QQ空间相册展示源码
Dec 12 Javascript
还不懂递归?读完这篇文章保证你会懂
Jul 29 Javascript
Vue.js 十五分钟入门图文教程
Sep 12 Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
Jun 10 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中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
2015/04/26 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
json的定义、标准格式及json字符串检验
2014/05/11 Javascript
JS实现文件动态顺序载入的方法
2015/03/07 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
vue-cli3脚手架的配置及使用教程
2018/08/28 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
JS面向对象编程——ES6 中class的继承用法详解
2020/03/03 Javascript
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
VUE+Element实现增删改查的示例源码
2020/11/23 Vue.js
python网络编程示例(客户端与服务端)
2014/04/24 Python
Python是编译运行的验证方法
2015/01/30 Python
Python 中的 else详解
2016/04/23 Python
Python中max函数用于二维列表的实例
2018/04/03 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
python实现桌面气泡提示功能
2019/07/29 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
Python matplotlib修改默认字体的操作
2020/03/05 Python
html5文本内容_动力节点Java学院整理
2017/07/11 HTML / CSS
付款委托书范本
2014/04/04 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
大四学生个人总结
2015/02/15 职场文书
辩论赛主持人开场白
2015/05/29 职场文书
实习证明模板
2015/06/16 职场文书
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
2021/05/24 Python