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 相关文章推荐
javascript cookies 设置、读取、删除实例代码
Apr 12 Javascript
JavaScript中的函数嵌套使用
Jun 04 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
Jun 20 Javascript
JavaScript判断IE版本型号
Jul 27 Javascript
基于JavaScript短信验证码如何实现
Jan 24 Javascript
es6的数字处理的方法(5个)
Mar 16 Javascript
JS实现复选框的全选和批量删除功能
Apr 05 Javascript
angular使用bootstrap方法手动启动的实例代码
Jul 18 Javascript
解决vue 按钮多次点击重复提交数据问题
May 10 Javascript
angularJs中跳转到指定的锚点实例($anchorScroll)
Aug 31 Javascript
分享一个vue项目“脚手架”项目的实现步骤
May 26 Javascript
vue引入静态js文件的方法
Jun 20 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
PHP 开发环境配置(Zend Studio)
2010/04/28 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
JQuery+DIV自定义滚动条样式的具体实现
2013/06/25 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
浅析2种JavaScript继承方式
2015/12/04 Javascript
JavaScript中捕获与冒泡详解及实例
2017/02/03 Javascript
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
浅谈AngularJS中使用$resource(已更新)
2017/09/14 Javascript
VsCode插件整理(小结)
2017/09/14 Javascript
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
微信小程序时间轴实现方法示例
2019/01/14 Javascript
浅谈Vue为什么不能检测数组变动
2019/10/14 Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
2019/11/21 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
利用python获得时间的实例说明
2013/03/25 Python
Python实现测试磁盘性能的方法
2015/03/12 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
如何用Django处理gzip数据流
2021/01/29 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
Clarks鞋法国官方网站:英国其乐鞋品牌
2018/02/11 全球购物
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
法学专业毕业生自荐信范文
2013/12/18 职场文书
前台文员我鉴定
2014/01/12 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
校园环保广播稿(3篇)
2014/09/15 职场文书
结婚堵门保证书
2015/05/08 职场文书
周一给客户的问候语
2015/11/10 职场文书
JavaScript设计模式之原型模式详情
2022/06/21 Javascript