从根本上解决Request.QueryString中文乱码问题。

我说的是从根本上解决Request.QueryString中文乱码问题。就是说:Url必须得是:
http://www.abc.com/index.aspx?key=中文
一些“曲线救国”或者迂回的方法,比如说:对先对“中文”编码(escape、Server.UrlEncode)再传值的都不能算从根本上解决此问题,只能算是回避了QueryString中文乱码的问题。因为这样传的参数是“%u4E2D%u6587”或者“%e4%b8%ad%e6%96%87”而不是中文。这个问题是可以解决的,因为直接传中文在我其他的网站里面是不会乱码的,就是说这个情况偶然,或者有些细节的地方我没有注意到。
经测试以下解决方案无效: (注:网站整站是utf-8的,而且也相信utf-8可以兼容中文)
1、Request.ContentEncoding = Encoding.GetEncoding("utf-8");
2、web.config添加配置节点:<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN"/>

呵呵,大家不要说:“管它传的什么,只要最后得到中文部就可以了吗?”。我先的程序要求就必须是:http://www.abc.com/index.aspx?key=中文
这样传值的 呵呵 
谢谢大家了

作者: lanxigang   发布时间: 2011-06-16

我也遇到过这个问题,待解决

作者: LQ_651119244   发布时间: 2011-06-16

<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN"/>

作者: fpengge   发布时间: 2011-06-16

用的GET的方式传值!!!在JS里面
function ShowDilog(name)---中文的!
{
var b=encodeURI(mc);
/*跳到你要去的页面 ?name=b*/
}

--第二个页面取值--
string Str =Server.UrlDecode(Request.QueryString["name"].ToString());
这样就没有乱码了!!!!

作者: huhailongeee   发布时间: 2011-06-16

楼主 你想象力很丰富 待你解决

作者: longlong881129   发布时间: 2011-06-16

引用 4 楼 longlong881129 的回复:
楼主 你想象力很丰富 待你解决

++

作者: work_fei   发布时间: 2011-06-16

这样不太好吧,一般使用UTF编码,传递中文的话,就使用Server.UrlEncode(),然后在接受页面使用Server.UrlDecode(),我们是这样做的,看其他童鞋们是怎么做的,期待。

作者: taomanman   发布时间: 2011-06-16

http://www.abc.com/index.aspx?key=中文

自己写个算法 把中文转换英文或者字母+数字

传递过去在解密。

作者: wxr0323   发布时间: 2011-06-16

可以试下用request.param[]看看

作者: LONG332949572   发布时间: 2011-06-16

先编 后解码 ,楼主何必呢

作者: claymore1114   发布时间: 2011-06-16

先编码再传

作者: RUNBEAR   发布时间: 2011-06-16

直接传值

作者: qqiilrain   发布时间: 2011-06-16