星空网 > 软件开发 > ASP.net

在使用Intelligencia.UrlRewriter过程中 中文乱码问题

由于业务需求,最近将项目部分模块修改为伪静态,使用到了Intelligencia.UrlRewriter.dll组件。

网上对使用Intelligencia.UrlRewriter.dll的配置讲解很多,在此就不多说了,(如:http://www.cnblogs.com/naoguazi/p/URLReWriter.html)

本文主要分享Url传递中文时乱码问题的处理解决方案。

1、起初使用“贱招”解决。

  思路就是在通过url传递中文参数的时候,先将中文进行URL编码。Jquery可以使用(编码:encodeURIComponent(val);解码:decodeURIComponent(val))进行编码和解码。我使用的IISWeb服务器,URL编码后的参数字符是(%E8%9A%82%E8%9A%81%E7%94%B7%E5%AD%A9)传递时就报错。然后我就把百分号%,使用短下划线全部替换("%E8%9A%82%E8%9A%81%E7%94%B7%E5%AD%A9".replace(/%/gm,'_'))。然后把字符串转入到后台在将其替换过来,解码,然后........。兵来将挡,水来土掩。贱招就是这样子的。最终就是能将中文参数正确的传入到后台。这种方法虽然临时解决了问题,但是会给以后的小伙伴会留下痛不欲生。

 

2、修改源码,重新编译Intelligencia.UrlRewriter.dll。使组件支持传递中文参数。

  在GitHub找到了源码并下载。(https://github.com/OptimityAdvisors/Intelligencia.UrlRewriter)

  打开解决方案,将代码插入RewriterEngine.cs文件private string Reduce(RewriteContext context, StringReader reader)方法中

result = string.Join("&", result.Split('&').Select(e => string.Join("=", e.Split('=').Select(o => HttpContext.Current.Server.UrlEncode(o)))));

如图:

在使用Intelligencia.UrlRewriter过程中 中文乱码问题

 

保存编译后的dll就将支持传递中文了,

 

需要注意的是,在后台接受参数可以先进行解码后使用。

 

支持参数中文的dll下载地址:

 




原标题:在使用Intelligencia.UrlRewriter过程中 中文乱码问题

关键词:UrlRewriter

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

亚马逊产品定价真的越低越好吗?:https://www.ikjzd.com/articles/113573
亚马逊买家review对流量的影响力有多大?:https://www.ikjzd.com/articles/113574
亚马逊产品快速清仓方法是什么?:https://www.ikjzd.com/articles/113575
亚马逊卖家如何找到出售自有品牌的最佳产品?:https://www.ikjzd.com/articles/113576
五星好评不能刷了?亚马逊又出手,专打击中国产品评论:https://www.ikjzd.com/articles/113577
注意:这6大要素影响listing排名!:https://www.ikjzd.com/articles/113578
九月初新疆旅游服装搭配(新疆游玩必备衣服清单):https://www.vstour.cn/a/408257.html
黄果树瀑布景区景点 - 黄果树瀑布景区景点分布图:https://www.vstour.cn/a/408258.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流