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 基础知识 被自己遗忘的
Oct 15 Javascript
JavaScript 原型与继承说明
Jun 09 Javascript
jQuery ajax cache缓存问题
Jul 01 Javascript
为Javascript中的String对象添加去除左右空格的方法(示例代码)
Nov 30 Javascript
js 数值转换为3位逗号分隔的示例代码
Feb 19 Javascript
Node.js学习之地址解析模块URL的使用详解
Sep 28 Javascript
Angular4 反向代理Details实践
May 30 Javascript
使用electron制作满屏心特效的示例代码
Nov 27 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
Dec 22 Javascript
12个提高JavaScript技能的概念(小结)
May 09 Javascript
微信小程序订阅消息(java后端实现)开发
Jun 01 Javascript
js实现飞机大战小游戏
Aug 26 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 模拟POST|GET操作实现代码
2010/07/20 PHP
php设计模式之简单工厂模式详解
2014/09/04 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
css配合jquery美化 select
2013/11/29 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
js实现按Ctrl+Enter发送效果
2014/09/18 Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
2014/12/08 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
jquery利用拖拽方式在图片上添加热链接
2015/11/24 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
AngularJS表单基本操作
2017/01/09 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
解决浏览器会自动填充密码的问题
2017/04/28 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
axios全局请求参数设置,请求及返回拦截器的方法
2018/03/05 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
2019/02/22 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python中使用序列的方法
2015/08/03 Python
Python实现matplotlib显示中文的方法详解
2018/02/06 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
Java基础面试题
2014/07/19 面试题
十佳班主任事迹材料
2014/01/18 职场文书
小学生读书感言
2014/02/12 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
Python必备技巧之字符数据操作详解
2022/03/23 Python