在使用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)))));
如图:
保存编译后的dll就将支持传递中文了,
需要注意的是,在后台接收参数先进行解码后使用。
var str= HttpContext.Current.Server.UrlDecode(str);
支持参数中文的dll下载地址: 下载
在使用Intelligencia.UrlRewriter过程中 中文乱码问题的更多相关文章
- xml传输过程中中文乱码
------------------------------------------request:----------------------------------------------- pu ...
- mysql中中文乱码问题
作用:约束用来保证数据有效性和完整性 . 定义主键约束 主键约束 primary key : 信息记录某个字段可以唯一区分其他信息记录,这个字段就可以是主键 (唯一 非空) primary key ...
- 201671010127 2016—2017—2 Java怎样解决Java程序中中文乱码的问题。
这是本次第二次分享新手在编程中遇到的问题,相信很多Java新手和我一样,在Java编程中会遇到中文乱码的情况,下面我就给大家分享我遇到问题和解决问题的具体过程. 我先用Notepad++写了一个如下的 ...
- Python画图matplotlib展示图中中文乱码
在用python的 matplotlib 画图的时候,在图表上面有中文乱码问题,如下的: 解决过程: 平台:windows,python2.7步骤一:打开设置文件 import matplotlib ...
- .Net Intelligencia.UrlRewriter 重定向参数中文支持配置方法
在使用.Net 官方 Url重定向组件时,发现若原地址包含中文,如:http://localhost/首页.html 重定向为:http://localhost/index.aspx?id=首页 时 ...
- URL地址中中文乱码详解(javascript中encodeURI和decodeURI方法、java.net.URLDecoder.encode、java.net.URLDecoder.decode)
引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生了,该如何解决呢?且听本文详细道来. ...
- Java编程中中文乱码问题的研究及解决方案
0 引言 Java最大的特性是与平台的无关性及开发环境的多样性.字符串被Java应用程序转化之前,是根据操作系统默认的编码方式编码.Java语言内部采用Unicode编码,它是定长双字节编码,即任何符 ...
- java开发中中文乱码总结
1.jsp页面内容显示乱码 这种乱码原因很简单,一般的工具或解码程序对中文字符解析时采用默认的解码方式: <%@ page contentType="text/html; charse ...
- servlet中中文乱码问题
在web项目中经常回碰到中文乱码的问题,特此整理一下,有不足的地方,希望大家纠正. 1从前台往后台传数据,.以get方式发送请求,发送的参数不乱,但是后台接收到参数乱码 在Tomcat的server. ...
随机推荐
- sql server中常用方法函数
SQL SERVER常用函数 1.DATEADD在向指定日期加上一段时间的基础上,返回新的 datetime 值. (1)语法: DATEADD ( datepart , number, date ) ...
- JS高级程序设计笔记一
/*设置自定义属性*/ var div=document.querySelector("#div1"); div.setAttribute("title",&q ...
- ArcGIS 10与ArcEngine 10安装及破解
1 2 3 4 5 分步阅读 一键约师傅 百度师傅高质屏和好师傅,拯救你的碎屏机 百度经验:jingyan.baidu.com 现在常见的破解方法在下面的地址中已经详细附图说明了,但是这种破解方法,想 ...
- 【Oracle】去除表中重复的数据
删除表重复数据 (t1表中有重复数据)1.使用distinct create table t2 as select * from t1;create table tmp_t2 as select di ...
- 读取properties文件以及properties的用法
package cn.util; import java.io.IOException; import java.io.InputStream; import java.util.Properties ...
- html和css书写规范
HTML 规范 分离的标记.样式和脚本 结构.表现.行为分离 在可能情况下验证你的标记 使用编辑器验证你的标记是否正确,一般编辑器都自带有这个功能. 技术不支持的时候使用备胎,如canvas 编码格式 ...
- POJ 2386 题解
Lake Counting 描述 Due to recent rains, water has pooled in various places in Farmer John's field, whi ...
- JS:事件处理程序
在JQuery中有个toggle事件,可以绑定两个或多个函数,可以轮流相应click事件,这两天学习到原来javascript中有两个方法(也可以说是四个)同样可以实现这个功能. #box{ marg ...
- Android SDK下载和更新失败的解决方法
解决国内访问Google服务器的困难启动 Android SDK Manager ,打开主界面,依次选择「Tools」.「Options...」,弹出『Android SDK Manager - Se ...
- phpcmsv9 阿里云OSS云存储整合教程
该教程算不上是phpcmsv9阿里云oss插件,所以整个修改及其代码覆盖前请一定记得备份.还有一点就是后台发布文章时上传的附件还是会保存在你的服务器上,基于以下原因:1.个人的需求是前台页面需要使用t ...