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 相关文章推荐
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
Jul 26 Javascript
解决JS浮点数运算出现Bug的方法
Mar 12 Javascript
javascript验证只能输入数字和一个小数点示例
Oct 21 Javascript
动态标签 悬停效果 延迟加载示例代码
Nov 21 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
Jun 24 Javascript
整理Javascript函数学习笔记
Dec 01 Javascript
js实现倒计时及时间对象
Nov 15 Javascript
基于Vue2.X的路由和钩子函数详解
Feb 09 Javascript
ES6学习笔记之map、set与数组、对象的对比
Mar 01 Javascript
命令行批量截图Node脚本示例代码
Jan 25 Javascript
vue+elementUI实现表格关键字筛选高亮
Oct 26 Javascript
Vant 中的Toast设置全局的延迟时间操作
Nov 04 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 Sql Server连接失败问题及解决办法
2009/08/07 PHP
php画图实例
2014/11/05 PHP
Yii操作数据库实现动态获取表名的方法
2016/03/29 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
jQuery中绑定事件的命名空间详解
2011/04/05 Javascript
首页图片漂浮效果示例代码
2014/06/05 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
如何检测JavaScript的各种类型
2016/07/30 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
开发Vue树形组件的示例代码
2017/12/21 Javascript
vue+axios+element ui 实现全局loading加载示例
2018/09/11 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
pygame学习笔记(4):声音控制
2015/04/15 Python
python计算文本文件行数的方法
2015/07/06 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
Zalando Lounge瑞士:时尚与生活方式购物俱乐部
2020/03/12 全球购物
经理秘书岗位职责
2013/11/14 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
《乡下孩子》教学反思
2014/04/17 职场文书
副总经理党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/06 职场文书
商铺门面租房协议书
2014/10/21 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
六年级小学生评语
2014/12/26 职场文书
小学生成绩单评语
2014/12/31 职场文书
管理失职检讨书
2015/05/05 职场文书
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js
实操Python爬取觅知网素材图片示例
2021/11/27 Python