jquery向.ashx文件post中文乱码问题的解决方法


Posted in Javascript onMarch 28, 2011

1.我的环境:vs2005,未装SP1补丁,不能创建Web应用程序,只能创建网站;jquery版本1.5.1

2.web.config中的相关配置

<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>

3.jquery的Post数据的写法

$(document).ready(function (){ 
$("#btnSend").click(function(){ 
$.ajax({ 
type: "POST", 
url: "PrecisionAHandle.ashx", 
contentType:"application/x-www-form-urlencoded; charset=UTF-8", 
data: { "StudentId": $("#LblStudentId").attr("innerText"),"StudentName": $("#LblStudentName").attr("innerText"),"StudentAge": $("#txtStudentAge").attr("value")}, 
success: function(html){ 
$("#TabContainer").html(html); 
} 
}); 
}); 
});

其中StudentName是中文

4.在.ashx文件中接收参数的写法

string strStudentName = context.Request.Params["StudentName"];
注意:如果没有contentType:"application/x-www-form-urlencoded; charset=UTF-8",则context.Request.Params["StudentName"]是乱码。
经过在.ashx中跟踪context.Request.ContentEncoding,可知jquery所post过来的数据采用的是gb2312编码,可能context.Request在接收到数据时默认采用utf-8进行解码,但是jquery在Post数据的时候却不是用的utf-8才导致.ashx的context.Request.Params["StudentName"]显示为乱码。
感觉比较奇怪的现象:
现象1:在不添加contentType:"application/x-www-form-urlencoded; charset=UTF-8",的情况下,在.ashx文件中使用下面的语句却可以正确显示字符串:

StreamReader steamRd = new StreamReader(HttpContext.Current.Request.InputStream); 
string strPostData = steamRd .ReadToEnd(); 
strPostData =HttpUtility.UrlDecode(strPostData, Encoding.GetEncoding("utf-8"));

现象2:将web.config中的相关配置改为
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
之后,不管是否加上contentType:"application/x-www-form-urlencoded; charset=UTF-8",后台的.ashx文件接收到的参数仍然是乱码。修改web.config之后网站编译的很慢且运行的也很慢。

参考文章:
https://3water.com/article/26658.htm
https://3water.com/article/26659.htm

Javascript 相关文章推荐
Jquery 基础学习笔记之文档处理
May 29 Javascript
javascript 一个函数对同一元素的多个事件响应
Jul 25 Javascript
js鼠标左右键 键盘值小结
Jun 11 Javascript
javascript动态加载二
Aug 22 Javascript
javascript dom追加内容实现示例
Sep 21 Javascript
快速解决jQuery与其他库冲突的方法介绍
Jan 02 Javascript
Bootstrap布局组件教程之Bootstrap下拉菜单
Jun 12 Javascript
将鼠标焦点定位到文本框最后(代码分享)
Jan 11 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
Sep 21 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
Feb 06 Javascript
js实现浏览器打印功能的示例代码
Jul 15 Javascript
JavaScript实现网页计算器功能
Oct 29 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
Mar 28 #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
You might like
php上传图片并压缩的实现方法
2015/12/22 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
Web层改进II-用xmlhttp 无声息提交复杂表单
2007/01/22 Javascript
找到了一篇jQuery与Prototype并存的冲突的解决方法
2007/08/29 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
js基础知识(公有方法、私有方法、特权方法)
2015/11/06 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
canvas绘制多边形
2017/02/24 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
2017/07/13 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[02:02]特效爆炸!DOTA2珍宝之瓶待你开启
2018/08/21 DOTA
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
探索Python3.4中新引入的asyncio模块
2015/04/08 Python
Python Property属性的2种用法
2015/06/21 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
python3对接mysql数据库实例详解
2019/04/30 Python
pytorch 求网络模型参数实例
2019/12/30 Python
python+opencv实现车道线检测
2021/02/19 Python
html5适合移动应用开发的12大特性
2014/03/19 HTML / CSS
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
党员实事承诺书
2014/03/26 职场文书
反洗钱宣传活动总结
2014/08/26 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
教学反思怎么写
2016/02/24 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
血轮眼轮回眼特效 html+css
2021/03/31 HTML / CSS
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
2021/04/01 PHP