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让Html中特殊字符不被转义
Nov 05 Javascript
JS时间特效最常用的三款
Aug 19 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
Jan 27 Javascript
javascript每日必学之封装
Feb 23 Javascript
深入理解JavaScript程序中内存泄漏
Mar 17 Javascript
vue.js入门教程之绑定class和style样式
Sep 02 Javascript
微信小程序 wx.request(object) API详解及实例代码
Sep 30 Javascript
提高Node.js性能的应用技巧分享
Aug 10 Javascript
karma+webpack搭建vue单元测试环境的方法示例
May 24 Javascript
微信小程序用户信息encryptedData详解
Aug 24 Javascript
vue进入页面时滚动条始终在底部代码实例
Mar 26 Javascript
react 项目中引入图片的几种方式
Jun 02 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
thinkphp循环结构用法实例
2014/11/24 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题分析
2007/08/12 Javascript
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
JS 表单验证大全
2011/11/23 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
2015/10/08 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
简单的vue-resourse获取json并应用到模板示例
2017/02/10 Javascript
js实现旋转木马效果
2017/03/17 Javascript
薪资那么高的Web前端必看书单
2017/10/13 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
JS实现中英文混合文字溢出友好截取功能
2018/08/06 Javascript
vue+vant实现购物车全选和反选功能
2020/11/17 Vue.js
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
python字符串替换的2种方法
2014/11/30 Python
django接入新浪微博OAuth的方法
2015/06/29 Python
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
Python 统计字数的思路详解
2018/05/08 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
python装饰器的特性原理详解
2019/12/25 Python
详解CSS3中的box-sizing(content-box与border-box)
2019/04/19 HTML / CSS
蒙蒂塞罗商店:Monticello Shop
2018/11/25 全球购物
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
伊琍体标语
2014/06/25 职场文书
财务会计专业自荐书
2014/06/30 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
雷锋的观后感
2015/06/10 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书