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检测Firefox浏览器是否启用了Firebug的代码
Dec 28 Javascript
jquery图片不完全按比例自动缩小的简单代码
Jul 29 Javascript
jQuery的context属性用法实例
Dec 27 Javascript
jQuery标签编辑插件Tagit使用指南
Apr 21 Javascript
jquery实现网站列表切换效果的2种方法
Aug 12 Javascript
Angular的$http与$location
Dec 26 Javascript
详解a++和++a的区别
Aug 30 Javascript
vue项目国际化vue-i18n的安装使用教程
Mar 14 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
May 25 Javascript
JavaScript中变量、指针和引用功能与操作示例
Aug 04 Javascript
vue-cli3 DllPlugin 提取公用库的方法
Apr 24 Javascript
React生命周期原理与用法踩坑笔记
Apr 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数据库非常慢的解决方法
2008/07/05 PHP
微信公众平台天气预报功能开发
2014/07/06 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
php获取客户端电脑屏幕参数的方法
2015/01/09 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
PHP用PDO如何封装简单易用的DB类详解
2017/07/30 PHP
PHP时间函数使用详解
2019/03/21 PHP
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
javascript textContent与innerText的异同分析
2010/10/22 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
jquery分页插件jquery.pagination.js实现无刷新分页
2016/04/01 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
vue-axios使用详解
2017/05/10 Javascript
浅谈angular.copy() 深拷贝
2017/09/14 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
layui动态表头的实现代码
2019/08/22 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
2020/09/21 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
python使用webbrowser浏览指定url的方法
2015/04/04 Python
Python2.x版本中基本的中文编码问题解决
2015/10/12 Python
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
python smtplib模块自动收发邮件功能(二)
2018/05/22 Python
更新修改后的Python模块方法
2019/03/03 Python
python实现弹窗祝福效果
2019/04/07 Python
Python range与enumerate函数区别解析
2020/02/28 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
Made in Design英国:设计家具、照明、家庭装饰和花园家具
2019/09/24 全球购物
大学生毕业自我评价范文分享
2013/11/11 职场文书
会计专业自荐信范文
2013/12/02 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP