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 相关文章推荐
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
Dec 22 Javascript
xtree.js 代码
Mar 13 Javascript
passwordStrength 基于jquery的密码强度检测代码使用介绍
Oct 08 Javascript
javascript判断非数字的简单例子
Jul 18 Javascript
为指定的元素添加遮罩层的示例代码
Jan 15 Javascript
详解addEventListener的三个参数之useCapture
Mar 16 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
Jun 16 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
Nov 25 Javascript
全面了解JavaScript对象进阶
Jul 19 Javascript
jQuery select自动选中功能实现方法分析
Nov 28 Javascript
微信小程序实现日历效果
Dec 28 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
Mar 08 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中去除所有js,html,css代码
2010/10/12 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
2012/09/05 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
js AspxButton的客户端操作
2009/06/26 Javascript
myFocus slide3D v1.1.0 使用方法与下载
2011/01/12 Javascript
探讨javascript是不是面向对象的语言
2013/11/21 Javascript
js实现表格字段排序
2014/02/19 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
2017/01/11 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
JS实现非首屏图片延迟加载的示例
2018/01/06 Javascript
vue使用jsonp抓取qq音乐数据的方法
2018/06/21 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
extract-text-webpack-plugin用法详解
2019/02/14 Javascript
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
如何用Matplotlib 画三维图的示例代码
2020/07/28 Python
HTML5的文档结构和新增标签完全解析
2017/04/21 HTML / CSS
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
前台文员岗位职责及工作流程
2013/11/19 职场文书
工厂门卫岗位职责
2013/11/25 职场文书
书香校园建设方案
2014/05/02 职场文书
2014年工程部工作总结
2014/11/25 职场文书
横空出世观后感
2015/06/09 职场文书
python状态机transitions库详解
2021/06/02 Python
基于Go语言构建RESTful API服务
2021/07/25 Golang