当前位置:新注册送38元体验金 > 新注册送38元体验金编程 > 在使用Intelligencia.UrlRewriter过程中 中文乱码问题,

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

文章作者:新注册送38元体验金编程 上传时间:2019-08-22

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

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

网上对使用Intelligencia.UrlRewriter.dll的配置讲解很多,在此就不多说了,(如:

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

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

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

 

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

  在GitHub找到了源码并下载。(

  打开解决方案,将代码插入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)))));

如图:

图片 1

 

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

 

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

var str= HttpContext.Current.Server.UrlDecode(str);

 

 

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

 

中文乱码问题,urlrewriter乱码 由于业务需求,最近将项目部分模块修改为伪静态,使用到了Intelligencia.Ur...

本文由新注册送38元体验金发布于新注册送38元体验金编程,转载请注明出处:在使用Intelligencia.UrlRewriter过程中 中文乱码问题,

关键词: