prototype 中文参数乱码解决方案


Posted in Javascript onNovember 09, 2009

在使用portotype,调用ajax方法时出现乱码,此时,获取页面中加入
可以试试;; Page.Response.Charset = "gb2312";
如果不奏效,有人提供另外解决方案:

request: function(url) { 
this.url = url; 
this.method = this.options.method; 
this.encoding = this.options.encoding; 
var params = this.options.parameters; 
if(this.encoding.toUpperCase()=="UTF-8"){ 
encode=encodeURIComponent; 
}else{ 
encode=escape; 
}

在调用时,加上encoding: 'gb2312'
var myAjax = new Ajax.Updater( 
"dvContent", 
url, 
{ 
method: 'get', 
parameters: pars, 
encoding: 'gb2312' 
});

另外还有一种方案;无论web.config中是否是"gb2312",都可以奏效。
因为网站编码是gb2312。在使用prototype的ajax时遇到中文参数乱码的问题。
方法如下;
1.将参数用encodeURI()编码
var par; 
par="param1="+"中文值"+"¶m2="+"其他值"; 
var url="server.aspx"; 
var myAjx=new Ajax.Request(url,{method: get',parameters: encodeURI(par) ,onComplete: submit});

2.接受端代码
NameValueCollection nvc= HttpUtility.ParseQueryString(Request.Url.Query, Encoding.UTF8); 
string title = (nvc["param1"] == null) ? "" : nvc["param1"];//接受中文

给出一个完整的调用示例,
/**//* 
Ajax企业名称是否存在检查 
*/ 
function CheckCompanyExist() 
{ 
var objtxtName=arguments[0]; 
var objBtnSubmit=arguments[1]; 
var objBtnCheck=arguments[2]; 
var currC_ID=arguments[3]; 
//alert($(arguments[0]).value); 
var objtxtValue=$(arguments[0]).value; 
$(objBtnSubmit).disabled=true; 
if($F(objtxtName).trim()) 
{ 
$(objtxtName).disabled=!$(objtxtName).disabled; 
var url="/tempAjaxService/"; 
var pars="module=CompanyExist&C_ID="+currC_ID+"&name="+objtxtValue;//$F(objtxtName);//objtxtValue;// 
var myAjax = new Ajax.Request(url, {method: 'get', parameters: encodeURI(pars),onComplete : function() { 
var txt = (''+arguments[0].responseText).evalJSON(); 
if(txt.Results==0||txt.Results==currC_ID) 
{ 
//alert(''+arguments[0].responseText); 
$(objBtnSubmit).value="提交我的企业信息"; 
$(objBtnSubmit).disabled=false; 
alert("企业验证通过,您可以继续下一步操作"); 
} 
else 
{ 
$(objBtnSubmit).value="请先确认您的企业信息是否已存在本网中"; 
if(window.confirm('此企业已存在,想获得该公司管理权限,点击“确定”,了解详情!!\r\n如果不能打开窗口,请检查并取消您所用浏览器的“弹出窗口拦截”功能。\r\n或在浏览器地栏中输入以下地址\r\nhttps://3water.com/ZhengMing.aspx')) 
window.open ('https://3water.com/ZhengMing.aspx','newwindow','height=160,width=800,top=0,left=0,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no'); 
} 
$(objtxtName).disabled=!$(objtxtName).disabled; 
}}); 
}

Code
//Page.Response.Charset = "gb2312"; 
NameValueCollection nvc = System.Web.HttpUtility.ParseQueryString(Request.Url.Query, Encoding.UTF8); 
Name=SQLParser.StringParse(nvc["name"]);
Javascript 相关文章推荐
JQUBAR1.1 jQuery 柱状图插件发布
Nov 28 Javascript
深入分析js中的constructor和prototype
Apr 07 Javascript
js实现快速分享功能(你的文章分享工具)
Jun 25 Javascript
jQuery实现密保互斥问题解决方案
Aug 16 Javascript
将数字转换成大写的人民币表达式的js函数
Sep 21 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
Oct 17 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
Dec 23 Javascript
js实现淡入淡出轮播切换功能
Jan 13 Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
Mar 21 Javascript
element上传组件循环引用及简单时间倒计时的实现
Oct 01 Javascript
JS中验证整数和小数的正则表达式
Oct 08 Javascript
在Vue项目中使用Typescript的实现
Dec 19 Javascript
jQuery 常见学习网站与参考书
Nov 09 #Javascript
Javascript select下拉框操作常用方法
Nov 09 #Javascript
页面中js执行顺序
Nov 09 #Javascript
js 鼠标拖动对象 可让任何div实现拖动效果
Nov 09 #Javascript
Jquery作者John Resig自己封装的javascript 常用函数
Nov 09 #Javascript
JQuery 图片延迟加载并等比缩放插件
Nov 09 #Javascript
让Firefox支持event对象实现代码
Nov 07 #Javascript
You might like
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
PHP中simplexml_load_string函数使用说明
2011/01/01 PHP
PHP数组实例总结与说明
2011/08/23 PHP
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
php强制运行广告的方法
2014/12/01 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
prototype 1.5相关知识及他人笔记
2006/12/16 Javascript
javascript深入理解js闭包
2010/07/03 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
Vue表单及表单绑定方法
2018/09/04 Javascript
JavaScript文档加载模式以及元素获取
2020/07/28 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
[02:20]2014DOTA2西雅图邀请赛 MVP外卡赛首胜采访
2014/07/09 DOTA
详解python实现线程安全的单例模式
2018/03/05 Python
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
2018/04/26 Python
python实现归并排序算法
2018/11/22 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
python多线程扫描端口(线程池)
2019/09/04 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
个人简历自我评价
2014/02/02 职场文书
函授生自我鉴定
2014/03/25 职场文书
推荐信怎么写
2014/05/09 职场文书
2014年环保工作总结
2014/11/26 职场文书
七一慰问简报
2015/07/20 职场文书
《酸的和甜的》教学反思
2016/02/18 职场文书
幼儿园六一儿童节开幕词
2016/03/04 职场文书
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript