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 迁移目录
Dec 18 Javascript
jquery 应用代码 方便的排序功能
Feb 06 Javascript
jQuery实现ichat在线客服插件
Dec 29 Javascript
jQuery如何防止这种冒泡事件发生
Feb 27 Javascript
jquery插件格式实例分析
Jun 16 Javascript
JS实现的二叉树算法完整实例
Apr 06 Javascript
Angular中ng-bind和ng-model的区别实例详解
Apr 10 Javascript
Vue实现百度下拉提示搜索功能
Jun 21 Javascript
在Vue中使用axios请求拦截的实现方法
Oct 25 Javascript
微信小程序实现发微博功能的示例代码
Jun 24 Javascript
jQuery zTree如何改变指定节点文本样式
Oct 16 jQuery
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 Vue.js
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
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
在Javascript中为String对象添加trim,ltrim,rtrim方法
2006/09/22 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
用vue和node写的简易购物车实现
2017/04/25 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
zookeeper python接口实例详解
2018/01/18 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
python代码过长的换行方法
2018/07/19 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
python区分不同数据类型的方法
2019/10/14 Python
Spring http服务远程调用实现过程解析
2020/06/11 Python
Stuart Weitzman美国官网:美国奢华鞋履品牌
2016/08/18 全球购物
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
英国领先的在线高尔夫设备零售商:Golfgeardirect
2020/12/11 全球购物
灵泰克Java笔试题
2016/01/09 面试题
写好自荐信的要点
2013/11/06 职场文书
暑期实习鉴定
2013/12/16 职场文书
管道维修工岗位职责
2013/12/27 职场文书
大型公益活动策划方案
2014/08/20 职场文书
志愿者事迹材料
2014/12/26 职场文书
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL