日期:2014-05-18  浏览次数:20467 次

关于url中传递汉字的问题
一个外站的一个连接地址链接到我站。例如:http://www.xxx.com?name=张小三
链过来后,我站怎么能获取到这个name的值?
因为是汉字获取不到,字母和数字可以获取到。
这个怎么解决?
c# 语言的

------解决方案--------------------

传值前编码: HttpContext.Current.Server.UrlEncode();
接收前解码: HttpContext.Current.Server.UrlDecode();
------解决方案--------------------
从常理来说 发送放应该使用

Server.UrlEncode编码,接受方使用Server.UrlDecode解码
------解决方案--------------------
两站编码一样可以解决
------解决方案--------------------
别的网站传过来的值应该是不行
------解决方案--------------------
访问你的网站后链接会变成http://www.xxx.com/?name=%D5%C5%D0%A1%C8%FD
需要js获取name的值后进行反编码unescape()
[code="JScript"]
//调用方法:比如地址为show.htm?id=2 取得id的值: QueryString("id")
function QueryString(qs)
{
s = location.href;
var SharpIndex=s.indexOf("#");
if (SharpIndex!=-1) {
s=s.substring(0,SharpIndex);
}
s = s.replace("?","?&").split("&");
re = "";
for(i=1;i <s.length;i++)
{
if(s[i].indexOf(qs+"=")==0)
{
re = s[i].replace(qs+"=","");
}
}
return re;
}

function GetNameValue()
{
  var name =unescape(QueryString("name"));
  alert(name);//这里做测试用看看是不是"张小三"
  //ajax传值到后台进行处理
}
[/code]

不知这样如何,思路有店狭窄,不知还有其他方法没
------解决方案--------------------
晕 别的网站传的值。。 先问一下你们两个网页是如何结合的? 然后再用js来取url,再复制给一个表单元素
------解决方案--------------------
js用escape,后台用UrlEncode
------解决方案--------------------
web.config里<system.web>里加上<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>就OK了!
------解决方案--------------------
探讨

传值前编码: HttpContext.Current.Server.UrlEncode();
接收前解码: HttpContext.Current.Server.UrlDecode();

------解决方案--------------------
探讨

传值前编码: HttpContext.Current.Server.UrlEncode();
接收前解码: HttpContext.Current.Server.UrlDecode();

------解决方案--------------------
有可能是外站用的网页编码跟你站用的网页编码不一样,这样你的网站接受到的汉字就是乱码的,这个好像不好解决.除非外站在链接之前对参数编码,到你这边再解码
------解决方案--------------------
晕!这个问题还在问?
给你全部的解决方案,自己去慢慢调试吧!都有代码!
http://blog.csdn.net/lifuyun/archive/2008/05/08/2414519.aspx