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 相关文章推荐
十个优秀的Ajax/Javascript实例网站收集
Mar 31 Javascript
Javascript模块化编程详解
Dec 01 Javascript
jquery模拟多级复选框效果的简单实例
Jun 08 Javascript
Bootstrap table表格简单操作
Feb 07 Javascript
JS实现的随机排序功能算法示例
Jun 09 Javascript
详解Vue中一种简易路由传参办法
Sep 15 Javascript
node.js中fs文件系统目录操作与文件信息操作
Feb 24 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
Sep 03 jQuery
浅谈vue-router路由切换 组件重用挖下的坑
Nov 01 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
Dec 10 Javascript
JS实现导航栏楼层特效
Jan 01 Javascript
JavaScript实现移动端弹窗后禁止滚动
May 25 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
discuz安全提问算法
2007/06/06 PHP
在JavaScript中调用php程序
2009/03/09 PHP
php下mysql数据库操作类(改自discuz)
2010/07/03 PHP
php函数重载的替代方法--伪重载详解
2015/05/08 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
在JavaScript中遭遇级联表达式陷阱
2007/03/08 Javascript
常用的javascript function代码
2008/05/23 Javascript
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
2015/03/21 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
2016/02/19 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
2017/04/13 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
微信小程序云函数使用mysql数据库过程详解
2019/08/07 Javascript
d3.js实现图形拖拽
2019/12/19 Javascript
Angular利用HTTP POST下载流文件的步骤记录
2020/07/26 Javascript
[44:40]Serenity vs Pain 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
2018/03/04 Python
快递业务员岗位职责
2014/01/06 职场文书
店长职务说明书
2014/02/04 职场文书
初中作文评语大全
2014/04/23 职场文书
医院竞聘演讲稿
2014/05/16 职场文书
材料化学专业求职信
2014/07/15 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
电信营业员岗位职责
2015/04/14 职场文书
政府会议通知范文
2015/04/15 职场文书
2016年母亲节寄语
2015/12/04 职场文书
2016年社区中秋节活动总结
2016/04/05 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
MySQL实现用逗号进行拼接、以逗号进行分割
2022/12/24 MySQL