prototype中文参数乱码解决方案

在使用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",都可以奏效。参考http://www.okajax.com/a/200904/prototype_utf8.html

方法如下;

1.将参数用encodeURI()编码
var par; par="param1="+"中文值"+"&param2="+"其他值"; 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/nhttp://www.agronet.com.cn/ZhengMing.aspx')) window.open ('http://www.agronet.com.cn/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; }}); }

//Page.Response.Charset = "gb2312"; NameValueCollection nvc = System.Web.HttpUtility.ParseQueryString(Request.Url.Query, Encoding.UTF8); Name=SQLParser.StringParse(nvc["name"]);
非Ajax的可以参看这里

http://blog.youkuaiyun.com/downmoon/archive/2007/11/14/1885199.aspx


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值