url 传参的时候URL重写后乱码,不重写的没事

leileilang0 2012-03-13 06:07:21
IIS7
传参的时候
 Response.Redirect("xianlusearch.aspx?key=" + HttpUtility.UrlEncode(txtlink.Value.Trim(), System.Text.Encoding.GetEncoding("GB2312")));

直接?key形式的传到那个页是

urlkey =Server.UrlDecode( Request.QueryString["key"].ToString());

这么就能解析出汉字
如果是按重写得url的话

Response.Redirect("/xianlusearch__________" + HttpUtility.UrlEncode(txtlink.Value.Trim(), System.Text.Encoding.GetEncoding("GB2312")) + "_1.html");

传过去的解析就是乱码了

我再web.config里加了默认字符了
 <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />

每个网页标头也加了格式
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />



难道iis还要再设置默认字符?谁遇到过么。。解释下。。
...全文
321 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
moble_xie 2012-06-27
  • 打赏
  • 举报
回复
heycoder 2012-06-27
  • 打赏
  • 举报
回复
刚看到楼主用的是加密解密解决的,
建议楼主使用编码解码的方式.
另外 搜索引擎是不喜欢链接中带有汉字的.
heycoder 2012-06-27
  • 打赏
  • 举报
回复
乱码究竟是什么情况下的乱码,可否把乱码贴出来看看
因为在有些情况下IIS会在链接的最后加上IIS信息...
newxdlysk 2012-04-24
  • 打赏
  • 举报
回复
Encoding.UTF8.GetString(Encoding.Default.GetBytes(txtlink.Value.Trim()))
leileilang0 2012-04-24
  • 打赏
  • 举报
回复
使用了DEC加密了。把汉字传前加密,接收再揭秘。。可能会影响收录但是先能用了再说。。。
zj25810 2012-03-29
  • 打赏
  • 举报
回复
注意:escape不识别 + 这个符号。
zj25810 2012-03-29
  • 打赏
  • 举报
回复
然后传到的那个页面正常接收
zj25810 2012-03-29
  • 打赏
  • 举报
回复
escape(url)传过去
leileilang0 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]

重写用的是IIS级别的还是.NET级别的?
如果是.NET级别的还真是奇怪了,不过可调试
[/Quote]
用的iis7的重写模块Rewrite。在web.config里配置路径
这两个有什么区别么。。
潮起潮落 2012-03-28
  • 打赏
  • 举报
回复
重写用的是IIS级别的还是.NET级别的?
如果是.NET级别的还真是奇怪了,不过可调试
风2013 2012-03-26
  • 打赏
  • 举报
回复
要么编码的时候 去掉编码格式 gb2312 或者在解码的时候也加上解码格式 gb2312

统一啊....
jss122414092 2012-03-26
  • 打赏
  • 举报
回复
你非要在url上转码干嘛,在获取url参数后在转,有事与留言器也有关系,火狐就是
zhou349398998 2012-03-26
  • 打赏
  • 举报
回复
用utf-8 不就解决问题了
leileilang0 2012-03-26
  • 打赏
  • 举报
回复
求人。。求指导。。
leileilang0 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 w506044 的回复:]

HttpUtility.UrlEncode(txtlink.Value.Trim(), System.Text.Encoding.GetEncoding("GB2312")).Trim();

试试

应该是有空格的问题吧!,
[/Quote]
试过。。还是不行啊。。。
雾草一波 2012-03-22
  • 打赏
  • 举报
回复
HttpUtility.UrlEncode(txtlink.Value.Trim(), System.Text.Encoding.GetEncoding("GB2312")).Trim();

试试

应该是有空格的问题吧!,
SomethingJack 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 leileilang0 的回复:]

有人么。。。
[/Quote]友情顶`
  • 打赏
  • 举报
回复
改成这样呢?

Response.Redirect(HttpUtility.UrlEncode("/xianlusearch__________", System.Text.Encoding.GetEncoding("GB2312"))
+ HttpUtility.UrlEncode(txtlink.Value.Trim(), System.Text.Encoding.GetEncoding("GB2312"))
+ HttpUtility.UrlEncode("_1.html", System.Text.Encoding.GetEncoding("GB2312")));
leileilang0 2012-03-14
  • 打赏
  • 举报
回复
有人么。。。
leileilang0 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hzzasdf 的回复:]

改成这样呢?

Response.Redirect(HttpUtility.UrlEncode("/xianlusearch__________", System.Text.Encoding.GetEncoding("GB2312"))
+ HttpUtility.UrlEncode(txtlink.Value.Trim(), System.Text.Encoding.GetEncodi……
[/Quote]
这么传过去 比如传北京
路径就会是
http://localhost/%2fxianlusearch__________%b1%b1%be%a9_1.html
接收到的是鍖椾含
加载更多回复(3)

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧