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 相关文章推荐
JS连接SQL数据库与ACCESS数据库的方法实例
Nov 21 Javascript
javascript中的五种基本数据类型
Aug 26 Javascript
基于javascript实现右下角浮动广告效果
Jan 08 Javascript
jquery获取复选框checkbox的值实现方法
May 30 Javascript
微信js-sdk界面操作接口用法示例
Oct 12 Javascript
JavaScript实现页面无操作倒计时退出
Oct 22 Javascript
jQuery向webApi提交post json数据
Jan 16 Javascript
js实现九宫格的随机颜色跳转
Feb 19 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
Mar 21 Javascript
浅谈React深度编程之受控组件与非受控组件
Dec 26 Javascript
Javascript实现购物车功能的详细代码
May 08 Javascript
解决layui下拉框监听问题(监听不到值的变化)
Sep 28 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写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
javascript getElementsByClassName函数
2010/04/01 Javascript
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
jquery multiSelect 多选下拉框
2010/07/09 Javascript
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
2013/04/26 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
Ajax请求在数据量大的时候出现超时的解决方法
2014/02/27 Javascript
jQuery中ajax和post处理json的不同示例对比
2014/11/02 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
2018/01/07 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
[41:20]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS DK
2014/05/26 DOTA
Python多进程multiprocessing用法实例分析
2017/08/18 Python
详解python之heapq模块及排序操作
2019/04/04 Python
Python pandas RFM模型应用实例详解
2019/11/20 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
详解Python中list[::-1]的几种用法
2020/11/16 Python
美国网上花店:JustFlowers
2017/02/12 全球购物
Java工程师面试集锦之Spring框架
2013/06/16 面试题
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
毕业生求职自荐信怎么写
2014/01/08 职场文书
西北政法大学自主招生自荐信
2014/01/29 职场文书
《得道多助,失道寡助》教学反思
2014/04/19 职场文书
小学二年级评语
2014/04/21 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
周一问候语大全
2015/11/10 职场文书