escape传值编码的问题 这是我用escape加密:“基础教程”这几个字的结果:%u57FA%u7840%u6559%u7A0B 这是百度的传值编码:%BB%F9%B4%A1%BD%CC%B3%CC这两个编码得到的结果是一样的,但是我想要百度的那种传值,有js怎么做?用asp,和.net分别都怎么做?声明:用asp的server.URLEncode() 方法是不行的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 alert( encodeURI( "基础教程")); 或者alert( encodeURIComponent("基础教程")); asp.netServer.UrlEncode("基础教程"); 大哥,不行啊%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B 这个结果是用encodeURI输出的,下面那个encodeURIComponent和这个一样的,我想要结果是这样的。%BB%F9%B4%A1%BD%CC%B3%CC encodeURI( "基础教程")这样不可以吗?先有UE来转码看看是否可以 Server.UrlEncode传递在接受页面用request.querystring或者request.form来获取 是可以编译,我想要的是gb2312的编码,并不是要utf-8的,所以encodeURI和escape得到的结果都不行 我只知道Java怎么转。asp和.net没玩过。帮你顶一下。 实现原理就是动态创建一个<form>和<iframe>指定<form>编码提交数据到<iframe>然后通过<iframe>传递会字符串<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head> <title>UTF8页面采用GB2312编码实例</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/></head><body> <input id="text_value" type="text" value="zswang 路过!"/> <input id="text_code" type="text" readonly="readonly"/> <input id="button_escape" type="button" value="转换" onclick="button_escape_Click();"/><script>function button_escape_Click() { escapeEx(document.getElementById("text_value").value, "GB2312");}function escapeEx(params, charset) { if (document.all) var iframe = document.createElement("<iframe name='iframe_encode'></iframe>"); else { var iframe = document.createElement("iframe"); iframe.name = "iframe_encode"; } var form = document.createElement("form"); form.action = "#"; form.method = "GET"; document.body.appendChild(form); var input = document.createElement("input"); input.name = "wd"; input.value = params; form.appendChild(input); form.target = "iframe_encode"; form.acceptCharset = charset; iframe.style.visibility = "hidden"; form.style.visibility = "hidden"; document.body.appendChild(iframe); if (document.all) { var old = document.charset; document.charset = charset; form.submit(); document.charset = old; } else form.submit();}function outCode(code) { document.getElementById("text_code").value = code;}(function() { var params = /\?wd=(.*?)(#|$)/.exec(location); if (params) { parent.outCode(params[1]); }})();</script></body></html>这种变态的招数估计很少人能想出来。 #11楼:思路看起来比较怪招,但好象不是LZ所有的结果呀,我用的IE7原值:zswang路过测试转换结果:zswang%A1%A4%26%2365533%3B%26%2365533%3B期望转换结果:zswang%C2%B7%B9%FD 楼上表骗我,我拿IETester测试了一下:IE7zswang+%C2%B7%B9%FD%A3%A1IE6zswang+%C2%B7%B9%FD%A3%A1 骗倒是不是骗你:我复制了你页面上的代码到ue,然后另存为文件,然后执行,就出现了上面的结果。不过重新打开文件后,发现汉字已经是乱码(估计实际上是保存成utf8字符集了,但复制后在ue中显示是正确的)。把汉字改过来就再测试确实就可以了。不管怎样,学习了。 使用 form 提交后,从 uri 中截取,这个方法以前有想过,但是因为 form submit 后,要过一段时间才能读到 iframe 的 href.而且不能阻塞线程, 给使用带来一定麻烦 .net的做法System.Web.HttpUtility.UrlEncode("基础教程", System.Text.UnicodeEncoding.GetEncoding("GB2312")).ToUpper()就是百度的编码 没错,百度是Gb2312的,在.net里很好实现,但是我现在多个页面都有搜索框,我想用javascript来实现这个功能,想在任何一个页面点击搜索的时候都通过js编码,然后把传传到搜索页面。 解决方法:1.设置web.config文件 <system.web> <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" /> </system.web> 2.asp.net对asp.net页面传值 进行传递 string Name = "中文参数"; Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name)); 进行接收 string Name = Request.QueryString["Name"]; Response.Write(Server.UrlDecode(Name)); 3.javascript对asp.net页面传值。 <script language="javascript"> function escode() { location.href ="B.aspx?Name="+escape(Name); } </script> 在asp.net页面中正常使用Request.QueryString("Name").toString()就可以得到正确的中文了 建议:URL传值不要传汉字。(首先可能会出现浏览器兼容问题,另外就是不安全) ie6下文本框光标不见 JS在IE下获取图片大小 制作动态菜单遇到的问题,求救 js里动态创建了一个img 并且添加了他的click事件,我在其他地方如何也调用这个img的click事件? 谁能帮我找出错误(菜鸟问题) 请问怎么判断标签名呢? 怎樣使mouseover暫停二秒後再執行? 缺少对象错误,高手进来抠分! 一个简单的avaScript问题,请指教,急!!!!(在线等,50分)2 如何禁用浏览器中的刷新按钮??? js中跨窗口传值传不过去 谁知道114la的网址快搜功能怎么做的
或者alert( encodeURIComponent("基础教程"));
大哥,不行啊%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B 这个结果是用encodeURI输出的,下面那个encodeURIComponent和这个一样的,我想要结果是这样的。%BB%F9%B4%A1%BD%CC%B3%CC
在接受页面用request.querystring或者request.form来获取
是可以编译,我想要的是gb2312的编码,并不是要utf-8的,所以encodeURI和escape得到的结果都不行
指定<form>编码提交数据到<iframe>
然后通过<iframe>传递会字符串<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>UTF8页面采用GB2312编码实例</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<input id="text_value" type="text" value="zswang 路过!"/>
<input id="text_code" type="text" readonly="readonly"/>
<input id="button_escape" type="button" value="转换" onclick="button_escape_Click();"/>
<script>
function button_escape_Click() {
escapeEx(document.getElementById("text_value").value, "GB2312");
}function escapeEx(params, charset) {
if (document.all)
var iframe = document.createElement("<iframe name='iframe_encode'></iframe>");
else {
var iframe = document.createElement("iframe");
iframe.name = "iframe_encode";
}
var form = document.createElement("form");
form.action = "#";
form.method = "GET";
document.body.appendChild(form);
var input = document.createElement("input");
input.name = "wd";
input.value = params;
form.appendChild(input);
form.target = "iframe_encode";
form.acceptCharset = charset;
iframe.style.visibility = "hidden";
form.style.visibility = "hidden";
document.body.appendChild(iframe);
if (document.all) {
var old = document.charset;
document.charset = charset;
form.submit();
document.charset = old;
} else form.submit();
}function outCode(code) {
document.getElementById("text_code").value = code;
}
(function() {
var params = /\?wd=(.*?)(#|$)/.exec(location);
if (params) {
parent.outCode(params[1]);
}
})();
</script>
</body>
</html>这种变态的招数估计很少人能想出来。
思路看起来比较怪招,但好象不是LZ所有的结果呀,我用的IE7
原值:zswang路过
测试转换结果:zswang%A1%A4%26%2365533%3B%26%2365533%3B
期望转换结果:zswang%C2%B7%B9%FD
zswang+%C2%B7%B9%FD%A3%A1IE6
zswang+%C2%B7%B9%FD%A3%A1
不管怎样,学习了。
因为 form submit 后,要过一段时间才能读到 iframe 的 href.而且不能阻塞线程, 给使用带来一定麻烦
System.Web.HttpUtility.UrlEncode("基础教程", System.Text.UnicodeEncoding.GetEncoding("GB2312")).ToUpper()
就是百度的编码
没错,百度是Gb2312的,在.net里很好实现,但是我现在多个页面都有搜索框,我想用javascript来实现这个功能,想在任何一个页面点击搜索的时候都通过js编码,然后把传传到搜索页面。
1.设置web.config文件
<system.web>
<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />
</system.web> 2.asp.net对asp.net页面传值
进行传递
string Name = "中文参数";
Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name));
进行接收
string Name = Request.QueryString["Name"];
Response.Write(Server.UrlDecode(Name)); 3.javascript对asp.net页面传值。
<script language="javascript">
function escode()
{
location.href ="B.aspx?Name="+escape(Name);
}
</script>
在asp.net页面中正常使用Request.QueryString("Name").toString()就可以得到正确的中文了
建议:URL传值不要传汉字。(首先可能会出现浏览器兼容问题,另外就是不安全)