JQuery.ajax传递中文参数的解决方法 推荐


Posted in Javascript onMarch 28, 2011

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

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

不同之处在于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的代码加以修改,加上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 相关文章推荐
Dojo Javascript 编程规范 规范自己的JavaScript书写
Oct 26 Javascript
JQuery插入DOM节点的方法
Jun 11 Javascript
Bootstrap每天必学之按钮
Nov 26 Javascript
JavaScript构建自己的对象示例
Nov 29 Javascript
jQuery实现字符串全部替换的方法
Dec 12 Javascript
JS常见算法详解
Feb 28 Javascript
详解redux异步操作实践
Aug 15 Javascript
Vue 中如何正确引入第三方模块的方法步骤
May 05 Javascript
layui 对table中的数据进行转义的实例
Sep 12 Javascript
vue 根据选择条件显示指定参数的例子
Nov 09 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
Nov 14 Javascript
利用js canvas实现五子棋游戏
Oct 11 Javascript
jQuery中调用WebService方法小结
Mar 28 #Javascript
利用jQuery接受和处理xml数据的代码(.net)
Mar 28 #Javascript
jquery.combobox中文api和例子,修复了上面的小bug
Mar 28 #Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
Sep 12 #Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
Mar 28 #Javascript
jQuery autocomplate 自扩展插件、自动完成示例代码
Mar 28 #Javascript
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
Mar 28 #Javascript
You might like
php文档更新介绍
2011/07/22 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
php中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
php使用websocket示例详解
2014/03/12 PHP
PHP中数据类型转换的三种方式
2015/04/02 PHP
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
bootstrap table复杂操作代码
2016/11/01 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
2019/03/22 Javascript
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
JS工厂模式开发实践案例分析
2019/10/17 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
Python import自定义模块方法
2015/02/12 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
Python3实现的简单三级菜单功能示例
2019/03/12 Python
linux下安装python3和对应的pip环境教程详解
2019/07/01 Python
解决Python3 控制台输出InsecureRequestWarning问题
2019/07/15 Python
Python二元算术运算常用方法解析
2020/09/15 Python
教师评优的个人自我评价分享
2013/09/19 职场文书
公司总经理工作职责管理办法
2014/02/28 职场文书
数学教育专业求职信
2014/07/22 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
刑事附带民事上诉状
2015/05/23 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
2016年教师党员创先争优承诺书
2016/03/24 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书