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对象的三个方法小结
Jan 12 Javascript
jQuery创建插件的代码分析
Apr 14 Javascript
js给dropdownlist添加选项的小例子
Mar 04 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
Apr 02 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
Jun 23 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
Apr 19 Javascript
jQuery事件绑定on()与弹窗实现代码
Apr 28 Javascript
jquery事件与绑定事件
Mar 16 Javascript
基于jQuery实现瀑布流页面
Apr 11 jQuery
浅谈react-native热更新react-native-pushy集成遇到的问题
Sep 30 Javascript
详解vue-cli 2.0配置文件(小结)
Jan 14 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
Aug 06 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中使用全局变量的几种方法
2013/06/24 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
2016/07/09 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
js 获取、清空input type="file"的值(示例代码)
2013/12/24 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
2014/11/24 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
微信小程序自定义组件
2017/08/16 Javascript
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
微信小程序实现文件、图片上传功能
2020/08/18 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
Python中使用ConfigParser解析ini配置文件实例
2014/08/30 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
Djang的model创建的字段和参数详解
2019/07/27 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
python自动点赞功能的实现思路
2020/02/26 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
Html5 webview元素定位工具的实现
2020/08/07 HTML / CSS
回馈慈善的设计师太阳镜:DIFF eyewear
2019/10/17 全球购物
网络技术支持面试题
2013/04/22 面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
会计专业毕业生求职信分享
2014/01/03 职场文书
交通安全演讲稿
2014/01/07 职场文书
《再见了,亲人》教学反思
2014/02/26 职场文书
老公给老婆的检讨书(精华篇)
2014/10/18 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
关于幸福的感言
2015/08/03 职场文书
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android