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 相关文章推荐
深入理解JavaScript系列(4) 立即调用的函数表达式
Jan 15 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
Sep 12 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
Apr 12 Javascript
javascript从image转换为base64位编码的String
Jul 29 Javascript
提交按钮的name='submit'引起的js失效问题及原因
Feb 25 Javascript
JavaScript生成带有缩进的表格代码
Jun 15 Javascript
如何检测JavaScript的各种类型
Jul 30 Javascript
js原生实现移动端手指滑动轮播图效果的示例
Jan 02 Javascript
layui表格数据重载
Jul 27 Javascript
Vue实现星级评价效果实例详解
Dec 30 Javascript
vue动态渲染svg、添加点击事件的实现
Mar 13 Javascript
jQuery实现飞机大战小游戏
Jul 05 jQuery
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
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
laravel 判断查询数据库返回值的例子
2019/10/11 PHP
基于PHP实现发微博动态代码实例
2020/12/11 PHP
js打印纸函数代码(递归)
2010/06/18 Javascript
Jquery拖拽并简单保存的实现代码
2010/11/28 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
Javascript常用字符串判断函数代码分享
2014/12/08 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
总结十个Angular.js由浅入深的面试问题
2016/08/26 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
ajax异步请求详解
2017/01/06 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
Vue基本使用之对象提供的属性功能
2019/04/30 Javascript
Django+Vue实现WebSocket连接的示例代码
2019/05/28 Javascript
node.js中事件触发器events的使用方法实例分析
2019/11/23 Javascript
Python translator使用实例
2008/09/06 Python
python装饰器decorator介绍
2014/11/21 Python
在Python的Django框架下使用django-tagging的教程
2015/05/30 Python
Python网络爬虫神器PyQuery的基本使用教程
2018/02/03 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
Python中安装easy_install的方法
2018/11/18 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
基于python实现操作redis及消息队列
2020/08/27 Python
儿科护士实习自我鉴定
2013/10/17 职场文书
班级读书活动总结
2014/06/30 职场文书
印刷技术专业自荐信
2014/09/18 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技