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_10_对象模型
Oct 16 Javascript
javascript记录文本框内文字个数检测文字个数变化
Oct 14 Javascript
JavaScript操作XML文件之XML读取方法
Jun 09 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
Dec 20 Javascript
关于redux-saga中take使用方法详解
Feb 27 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
Apr 18 jQuery
js遍历添加栏目类添加css 再点击其它删除css【推荐】
Jun 12 Javascript
js前端面试之同步与异步问题详解
Apr 03 Javascript
vue+egg+jwt实现登录验证的示例代码
May 18 Javascript
浅谈Three.js截图并下载的大坑
Nov 01 Javascript
jquery绑定事件 bind和on的用法与区别分析
May 22 jQuery
Vue 组件复用多次自定义参数操作
Jul 27 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
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
js利用Array.splice实现Array的insert/remove
2009/01/13 Javascript
jquery下将选择的checkbox的id组成字符串的方法
2010/11/28 Javascript
基于jQuery选择器的整理集合
2013/04/26 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
2015/05/13 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
微信小程序带动画弹窗组件使用方法详解
2018/11/27 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
2018/11/29 Javascript
7个好用的JavaScript技巧分享(译)
2019/05/07 Javascript
轻松解决JavaScript定时器越走越快的问题
2019/05/13 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
TensorFlow用expand_dim()来增加维度的方法
2018/07/26 Python
Python面向对象程序设计示例小结
2019/01/30 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
python TCP包注入方式
2020/05/05 Python
Python下载网易云歌单歌曲的示例代码
2020/08/12 Python
Python实现自动签到脚本功能
2020/08/20 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
python对 MySQL 数据库进行增删改查的脚本
2020/10/22 Python
IRO美国官网:法国服装品牌
2018/03/06 全球购物
sort命令的作用和用法
2013/08/25 面试题
党的群众路线教育实践活动通讯稿
2014/09/10 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书