ASP.NET URL重写之后使用URL传中文参数出现乱码

zeasin 2008-07-16 04:07:22
ASP.NET URL重写之后使用URL传中文参数出现乱码
我用的是微软的URL重写DLL
请问该怎么解决
...全文
737 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
连边 2010-10-25
  • 打赏
  • 举报
回复
关注,同样遇到了。
四楼的不重写完全没有问题,但是重写后,就有点问题了。
我得到的是$1。。。
ccw7534569518 2010-04-09
  • 打赏
  • 举报
回复
我也遇到和楼主类似的问题,地址栏显示的是“%A4%A4%B0%EA”,后台得到的是“拞崙”,这原本应该是“中国”这两个字,上面的方法都试过了不行,除了以上的方法还有什么方法啊?
sx198810 2009-05-27
  • 打赏
  • 举报
回复
四楼的可以用!我试了可以传中文参数
「已注销」 2008-07-16
  • 打赏
  • 举报
回复
在后台得到的是

鍛ㄥ洿
「已注销」 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 hubblebubblepig 的回复:]
你看一下完整的escape(shoppename)是什么 alert一下 然后和你接受的对照一下 看看是不是重写匹配的时候造成了不完整
[/Quote]

alert()出来的是
%u5468%u56F4
hubblebubblepig 2008-07-16
  • 打赏
  • 举报
回复
你看一下完整的escape(shoppename)是什么 alert一下 然后和你接受的对照一下 看看是不是重写匹配的时候造成了不完整
hubblebubblepig 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 zeasin 的回复:]
重写配置一切没问题
网页也很正常显示
我提的问题不是这个哦,主要是关于传参乱码的
[/Quote]
你现在收到你传递的参数了 只是它是乱码 是吗??
「已注销」 2008-07-16
  • 打赏
  • 举报
回复
重写配置一切没问题
网页也很正常显示
我提的问题不是这个哦,主要是关于传参乱码的
hubblebubblepig 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 hubblebubblepig 的回复:]
"/ComShoppes-1-"+classid+".html?"+escape(shoppename)+"-";
这句话拼出来是啥效果??等于号都没有吗??
[/Quote]
不对 说错了 你是拼出来这个 然后重写 是吧?? 你的iis里面配置了html静态页的映射没??应用程序配置那里
hubblebubblepig 2008-07-16
  • 打赏
  • 举报
回复
"/ComShoppes-1-"+classid+".html?"+escape(shoppename)+"-";
这句话拼出来是啥效果??等于号都没有吗??
「已注销」 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 hubblebubblepig 的回复:]
主要就是先编码 在根据编码后的url来考虑重写规则的配置 最后在获得时再解码

js端用escape(url)和unescape(url)
后台用server.urlencode(url)和server.urldecode(url)
[/Quote]function Submit1_onclick() {

var classid=document.getElementById("dropclass").value;
var shoppename=document.getElementById("shoppename").value;
window.location.href="/ComShoppes-1-"+classid+".html?"+escape(shoppename)+"-";
return true;
}
下面是后台代码
Server.UrlDecode(Request.QueryString["shoppename"])


可是还不行啊
hubblebubblepig 2008-07-16
  • 打赏
  • 举报
回复
主要就是先编码 在根据编码后的url来考虑重写规则的配置 最后在获得时再解码

js端用escape(url)和unescape(url)
后台用server.urlencode(url)和server.urldecode(url)
hubblebubblepig 2008-07-16
  • 打赏
  • 举报
回复
js里面用escape和unescape来编码解码
「已注销」 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hubblebubblepig 的回复:]
诶 不对啊 编码之后的url没有意义啦 url重写的目的之一就是要url有"意义" 是这样的吧? 所以建议还是别用中文的好
[/Quote]我作中文传参主要是作为SQL查询条件用的
hubblebubblepig 2008-07-16
  • 打赏
  • 举报
回复
诶 不对啊 编码之后的url没有意义啦 url重写的目的之一就是要url有"意义" 是这样的吧? 所以建议还是别用中文的好
「已注销」 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 guyan033 的回复:]
server.urlEncode(str)
[/Quote]server.urlEncode(str)这个可以在JAVASCRIPT中用吗
「已注销」 2008-07-16
  • 打赏
  • 举报
回复
4楼的步骤已经做过了但还是一样
aaajedll 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lfywy 的回复:]
Web.config里加 <globalization requestEncoding="gb2312" responseEncoding="gb2312"/>
[/Quote]
正解
guyan033 2008-07-16
  • 打赏
  • 举报
回复
server.urlEncode(str)
hubblebubblepig 2008-07-16
  • 打赏
  • 举报
回复
原始url
将其UrlEncode (string 编码后的url字符串 = server.urlEncode(你的原始url字符串))
得到新的一大串编码的url
利用这个编码的url根据配置进行url重写
得到重写后的url并UrlDecode

大概是这样吧..
加载更多回复(4)

62,194

社区成员

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

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

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

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