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 相关文章推荐
拖拉表格的JS函数
Nov 20 Javascript
javascript 程序库的比较(一)之DOM功能
Apr 07 Javascript
JS获取Table中td值的方法
Mar 19 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
Apr 15 Javascript
jQuery 实现评论等级好评差评特效
May 06 Javascript
jquery点击改变class并toggle的实现代码
May 15 Javascript
js 点击a标签 获取a的自定义属性方法
Nov 21 Javascript
js实现的简练高效拖拽功能示例
Dec 21 Javascript
详解JS异步加载的三种方式
Mar 07 Javascript
提升页面加载速度的插件InstantClick
Sep 12 Javascript
angularJS实现动态添加,删除div方法
Feb 27 Javascript
three.js 实现露珠滴落动画效果的示例代码
Mar 01 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
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
php 分页函数multi() discuz
2009/06/21 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
jQuery技巧总结
2011/01/01 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
2013/11/13 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
jquery分隔Url的param方法(推荐)
2016/05/25 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
jQuery布局组件EasyUI Layout使用方法详解
2017/02/28 Javascript
AngularJs+Bootstrap实现漂亮的计算器
2017/08/10 Javascript
jquery select插件异步实时搜索实例代码
2017/10/20 jQuery
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
Node.js API详解之 readline模块用法详解
2020/05/22 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
python 垃圾收集机制的实例详解
2017/08/20 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
python使用webdriver爬取微信公众号
2018/08/31 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
2019/02/27 Python
python3安装OCR识别库tesserocr过程图解
2020/04/02 Python
lookfantastic荷兰:在线购买奢华护肤、护发和化妆品
2018/11/27 全球购物
学生个人的自我评价分享
2013/11/05 职场文书
医科大学毕业生自荐信
2014/02/03 职场文书
社区工作感言
2014/02/21 职场文书
旅游安全协议书
2014/04/21 职场文书
团日活动总结书
2014/05/08 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
老干部工作汇报材料
2014/10/28 职场文书
初中毕业生感言
2015/07/31 职场文书