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去掉空格的方法集合
Dec 28 Javascript
跟我学习javascript的基本类型和引用类型
Nov 16 Javascript
详解ECMAScript6入门--Class对象
Apr 27 Javascript
JS使用插件cryptojs进行加密解密数据实例
May 11 Javascript
简单谈谈vue的过渡动画(推荐)
Oct 11 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
Dec 12 Javascript
JS非行间样式获取函数的实例代码
Jun 05 Javascript
js+canvas实现验证码功能
Sep 21 Javascript
mpvue 单文件页面配置详解
Dec 02 Javascript
JS二级菜单不同实现方法分析【4种方法】
Dec 21 Javascript
原生JS实现的跳一跳小游戏完整实例
Jan 27 Javascript
JavaScript 反射和属性赋值实例解析
Oct 28 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数据库操作方法(MYSQL版)
2011/06/08 PHP
基于PHP的简单采集数据入库程序
2014/07/30 PHP
thinkphp3.x中session方法的用法分析
2016/05/20 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
setTimeout和setInterval的浏览器兼容性分析
2007/02/27 Javascript
JavaScript中的Document文档对象
2008/01/16 Javascript
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
Javascript 面向对象 命名空间
2010/05/13 Javascript
javascript中length属性的探索
2011/07/31 Javascript
深入理解JavaScript系列(3) 全面解析Module模式
2012/01/15 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
javascript实现模拟时钟的方法
2015/05/13 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
JavaScript之map reduce_动力节点Java学院整理
2017/06/29 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
2018/02/23 Javascript
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
[01:17:47]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中的字符串替换操作示例
2016/06/27 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
pandas数据筛选和csv操作的实现方法
2019/07/02 Python
Java中会存在内存泄漏吗,请简单描述
2016/12/22 面试题
冰淇淋店的创业计划书
2014/02/07 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
说好普通话圆梦你我他演讲稿
2014/09/21 职场文书
2015年科协工作总结
2015/05/19 职场文书