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学习笔记(十八) 获得页面中的元素代码
Jun 20 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
May 31 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
Dec 19 Javascript
jquery实现的Accordion折叠面板效果代码
Sep 02 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
Sep 09 Javascript
多个js毫秒倒计时同时进行效果
Jan 05 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
Feb 19 Javascript
jQuery事件用法详解
Oct 06 Javascript
网页挂马方式整理及详细介绍
Nov 03 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
Feb 14 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
Dec 18 Javascript
Java 生成随机字符的示例代码
Jan 13 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
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
PHP写UltraEdit插件脚本实现方法
2011/12/26 PHP
php将数组转换成csv格式文件输出的方法
2015/03/14 PHP
php curl 上传文件代码实例
2015/04/27 PHP
php使用COPY函数更新配置文件的方法
2015/06/18 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
jQuery 淡出一个图像到另一个图像的实现代码
2013/06/12 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
深入理解JSON数据源格式
2014/01/10 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
jQuery对val和atrr("value")赋值的区别介绍
2014/09/26 Javascript
js实现超酷的照片墙展示效果图附源码下载
2015/10/08 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
动态内存分配导致影响Javascript性能的问题
2018/12/18 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
React Native 混合开发多入口加载方式详解
2019/09/23 Javascript
微信小程序开发中var that =this的用法详解
2020/01/18 Javascript
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
python添加模块搜索路径和包的导入方法
2019/01/19 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
2019/12/10 Python
tensorflow 实现数据类型转换
2020/02/17 Python
国际商务专业学生个人的自我评价
2013/09/28 职场文书
六十岁生日答谢词
2014/01/10 职场文书
应届毕业生通用的自荐书范文
2014/02/07 职场文书
职务说明书范文
2014/05/07 职场文书
拓展训练激励口号
2014/06/17 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
义诊活动总结
2015/02/04 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python