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 相关文章推荐
在服务端(Page.Write)调用自定义的JS方法详解
Aug 09 Javascript
如何将php数组或者对象传递给javascript
Mar 20 Javascript
使用script的src实现跨域和类似ajax效果
Nov 10 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
Mar 25 Javascript
javascript简单判断输入内容是否合法的方法
May 11 Javascript
JS排序之快速排序详解
Apr 08 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
Sep 07 Javascript
小程序实现多选框功能
Oct 30 Javascript
微信小程序中显示倒计时代码实例
May 09 Javascript
jQuery提示框插件SweetAlert用法分析
Aug 05 jQuery
vue实现设置载入动画和初始化页面动画效果
Oct 28 Javascript
js实现点击烟花特效
Oct 14 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/06/20 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
windows环境下使用Composer安装ThinkPHP5
2018/05/18 PHP
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
js出生日期 年月日级联菜单示例代码
2014/01/10 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
Angular实现的进度条功能示例
2018/02/18 Javascript
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
nodejs一个简单的文件服务器的创建方法
2019/09/13 NodeJs
实例讲解JavaScript 计时事件
2020/07/04 Javascript
Ubuntu下创建虚拟独立的Python环境全过程
2017/02/10 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
python如何实现视频转代码视频
2019/06/17 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
Python unittest如何生成HTMLTestRunner模块
2020/09/08 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
Python 列表反转显示的四种方法
2020/11/16 Python
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
金融专业应届生求职信
2013/11/02 职场文书
网上开店必备创业计划书
2014/01/26 职场文书
加入学生会演讲稿
2014/04/24 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
借款民事起诉状范文
2015/05/19 职场文书
开业典礼致辞
2015/07/29 职场文书