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 相关文章推荐
ExtJS TabPanel beforeremove beforeclose使用说明
Mar 31 Javascript
jQuery选择器全面总结
Jan 06 Javascript
基于js与flash实现的网站flv视频播放插件代码
Oct 14 Javascript
jquery中ajax使用error调试错误的方法
Feb 08 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
Mar 02 Javascript
jquery图片切换插件
Mar 16 Javascript
jQuery使用中可能被XSS攻击的一些危险环节提醒
May 24 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
Nov 09 Javascript
JS写谷歌浏览器chrome的外挂实例
Jan 11 Javascript
js实现随机div颜色位置 类似满天星效果
Oct 24 Javascript
JavaScript缓动动画函数的封装方法
Nov 25 Javascript
node koa2 ssr项目搭建的方法步骤
Dec 11 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缩小png图片不损失透明色的解决方法
2013/12/25 PHP
ThinkPHP多语言支持与多模板支持概述
2014/08/22 PHP
php实现的农历算法实例
2015/08/11 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
Laravel5框架添加自定义辅助函数的方法
2018/08/01 PHP
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
2015/10/28 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
灵活的理解JavaScript中的this指向
2016/02/25 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
2018/05/10 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】
2018/11/20 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
Python实现比较两个列表(list)范围
2015/06/12 Python
Python自动化部署工具Fabric的简单上手指南
2016/04/19 Python
Django数据库表反向生成实例解析
2018/02/06 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
2019/01/29 Python
python的列表List求均值和中位数实例
2020/03/03 Python
如何实现更换Jupyter Notebook内核Python版本
2020/05/18 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
html5 横向滑动导航栏的方法示例
2020/05/08 HTML / CSS
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
大学本科毕业生求职信范文
2013/12/18 职场文书
写自荐信三大法宝
2014/01/24 职场文书
公司聘任书模板
2014/03/29 职场文书
怎样填写就业意向
2014/04/02 职场文书
小学生新年寄语
2014/04/03 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
工作简报怎么写
2015/07/21 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
2021/04/14 Python
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript