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 相关文章推荐
动态加载js的几种方法
Oct 23 Javascript
ExtJs3.0中Store添加 baseParams 的Bug
Mar 10 Javascript
Javascript 中 null、NaN和undefined的区别总结
Apr 10 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
Sep 05 Javascript
jquery获取复选框被选中的值
Mar 22 Javascript
D3.js中data(), enter() 和 exit()的问题详解
Aug 17 Javascript
jquery彩色投票进度条简单实例演示
Jul 23 Javascript
js判断鼠标位置是否在某个div中的方法
Feb 26 Javascript
vue2项目使用sass的示例代码
Jun 28 Javascript
微信小程序适配iphoneX的实现方法
Sep 18 Javascript
在vue中使用setInterval的方法示例
Apr 16 Javascript
JS控制只能输入数字并且最多允许小数点两位
Nov 24 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
模仿OSO的论坛(四)
2006/10/09 PHP
PHP中常用的魔术方法
2017/04/28 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
2013/08/07 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
JavaScript中的分号插入机制详细介绍
2015/02/11 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
2015/03/23 Javascript
JavaScript优化专题之Loading and Execution加载和运行
2016/01/20 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
详解tween.js的使用教程
2017/09/14 Javascript
详解vue-cli脚手架中webpack配置方法
2018/08/22 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
Python2与Python3的区别实例分析
2019/04/11 Python
详解Python list和numpy array的存储和读取方法
2019/11/06 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
Sneaker Studio乌克兰:购买运动鞋
2018/03/26 全球购物
ABOUT YOU匈牙利:500个最受欢迎的时尚品牌
2019/07/19 全球购物
网上开店必备创业计划书
2014/01/26 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
《春笋》教学反思
2014/04/15 职场文书
分公司负责人任命书
2014/06/04 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
财政局长个人总结
2015/03/04 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书