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的public、private和privileged模式
Dec 28 Javascript
javascript 解决表单仍然提交即使监听处理函数返回false
Mar 14 Javascript
深入理解JavaScript系列(3) 全面解析Module模式
Jan 15 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
Nov 18 Javascript
动态加载dtree.js树treeview(示例代码)
Dec 17 Javascript
简单的JavaScript互斥锁分享
Feb 02 Javascript
JS实现将人民币金额转换为大写的示例代码
Feb 13 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
Jun 13 Javascript
微信小程序之swiper轮播图中的图片自适应高度的方法
Apr 23 Javascript
微信小程序webview实现长按点击识别二维码功能示例
Jan 24 Javascript
解决layui表格的表头不滚动的问题
Sep 04 Javascript
详解vue3中组件的非兼容变更
Mar 03 Vue.js
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
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
基于jquery实现的类似百度搜索的输入框自动完成功能
2011/08/23 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
jquery+ajax实现省市区三级联动效果简单示例
2017/01/04 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
Layui数据表格之单元格编辑方式
2019/10/26 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
[01:38]完美世界DOTA2联赛PWL S3 集锦第四期
2020/12/21 DOTA
python之yield表达式学习
2014/09/02 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
Python supervisor强大的进程管理工具的使用
2019/04/24 Python
python动态进度条的实现代码
2019/07/03 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
对python中的*args与**kwgs的含义与作用详解
2019/08/28 Python
python实现宿舍管理系统
2019/11/22 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
Python list运算操作代码实例解析
2020/01/20 Python
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
财务管理职业生涯规划书
2014/02/26 职场文书
母亲节感恩活动记录
2014/03/16 职场文书
驾驶员培训方案
2014/05/01 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
社会工作专业求职信
2014/07/15 职场文书
JavaScript模拟实现网易云轮播效果
2022/04/04 Javascript