真正的JQuery.ajax传递中文参数的解决方法


Posted in Javascript onMay 28, 2011

本人最近也遇到了需要传递中文参数的问题。在网上搜索一下,复制粘贴发的到处都是的“终极”“解决方案”无非就是escape(str)来转码,然后在服务端还要写个方法再编辑一次,或用System.Text.Encoding下的方法来换来换去。

我很久以前一直在使用Prototype框架。在.net-GB2312或jsp-utf8下都使用过,从来没遇到有字符编码的问题。于是将Prototype和JQuery代码都下载下来打开研究原因。具体结果如下

真正的JQuery.ajax传递中文参数的解决方法
不同之处在于JQuery默认的contentType:application/x-www-form-urlencoded
而Prototype则是contentType:application/x-www-form-urlencoded; charset=UTF-8
这才是JQuery正在乱码的原因,在未指定字符集的时候,是使用ISO-8859-1
ISO8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。
JQuery的Ajax根本没有考虑到国际化的问题,使用了欧洲的字符集,所以才引起了传递中文出现乱码的问题。
而我们的UTF-8则可以解决这一问题。
最终指需要修改JQuery的代码,显式声明contentType使用utf-8字符集,即可解决GB2312中文传递的问题。
修改如图:

真正的JQuery.ajax传递中文参数的解决方法
只需要简单的将JQuery的代码加以修改,加上charset=UTF-8就可以了,这样不需要改变改什么web.config或什么在页面中改编码什么的了,也不需要用escapc(str)再在服务端解码。英文怎么传递,中文也怎么传递。
给段简单的代码测试一下:
test.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title></title> 
<script type="text/javascript" src="scripts/jquery-1.3.2.min.js"></script> 
<script type="text/javascript"> 
function DoAjax(){ 
$.post("AjaxTest.aspx",{txt:$("#tbox1").val()}, 
function(data){ 
$("#AjaxResponse").text(data); 
} 
); 
} 
</script> 
</head> 
<body> 
<p><a href="javascript:DoAjax();">AjaxTest</a><input name="tbox1" id="tbox1" type="text" /></p> 
<div id="AjaxResponse"></div> 
</body> 
</html>

AjaxTest.aspx:
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %> 
<script runat="server"> 
string parms; 
void Page_Load(object sender , EventArgs e) 
{ 
parms=Request["txt"]; 
if (String.IsNullOrEmpty(parms)){ 
Response.Write("Is Null"); 
}else{ 
Response.Write(parms); 
} 
} 
</script>
Javascript 相关文章推荐
心扬JS分页函数代码
Sep 10 Javascript
一起来写段JS drag拖动代码
Dec 09 Javascript
JavaScript分析、压缩工具JavaScript Analyser
Dec 31 Javascript
JavaScript插件化开发教程 (二)
Jan 27 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
Mar 04 Javascript
js验证身份证号有效性并提示对应信息
Oct 19 Javascript
Underscore源码分析
Dec 30 Javascript
JS自定义混合Mixin函数示例
Nov 26 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
Feb 20 Javascript
使用vue.js编写蓝色拼图小游戏
Mar 17 Javascript
underscore之Chaining_动力节点Java学院整理
Jul 10 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
Jul 18 Javascript
jquery 图片上传按比例预览插件集合
May 28 #Javascript
使用jquery实现select添加实现后台权限添加的效果
May 28 #Javascript
jQuery 源码分析笔记(2) 变量列表
May 28 #Javascript
Jquery下:nth-child(an+b)的使用注意
May 28 #Javascript
鼠标滑上去后图片放大浮出效果的js代码
May 28 #Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
May 25 #Javascript
actionscript与javascript的区别
May 25 #Javascript
You might like
基于mysql的论坛(6)
2006/10/09 PHP
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
javascript hasFocus使用实例
2010/06/29 Javascript
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
JS阻止用户多次提交示例代码
2014/03/26 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
2015/06/24 Javascript
浅析JavaScript Array和string的转换(推荐)
2016/05/20 Javascript
Javascript缓存API
2016/06/14 Javascript
js计算系统当前日期是星期几的方法
2016/07/14 Javascript
完美解决JS文件页面加载时的阻塞问题
2016/12/18 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
微信小程序使用request网络请求操作实例
2017/12/15 Javascript
vue.js多页面开发环境搭建过程
2019/04/24 Javascript
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
原生js实现下拉选项卡
2019/11/27 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
Django model序列化为json的方法示例
2018/10/16 Python
Python如何使用OS模块调用cmd
2020/02/27 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
Python通过len函数返回对象长度
2020/10/22 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
跟单文员的岗位职责
2013/11/14 职场文书
教师个人剖析材料
2014/02/05 职场文书
公司司机岗位职责
2014/02/07 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书
《山中访友》教学反思
2016/02/24 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书