.Net工作流项目实战——前台到后台传值的编码、解码解决方案
在页面传值的过程中,通过url进行传值,通常会涉及一些隐私信息,中文信息。那么对于这些信息进行重新编码和解码就是一个刚需!本次在项目中,要从一个页面通过Js代码,给另一个页面传参,通过url传值的方式进行数据通信。我用到的是第三种解决方案,传输的参数中可能涉及到中文。如果不进行重新编码和解码的话,就很可能出现乱码的情况。还好,咱们的Js,JQuery都已经提供了前台的编码。
总结备忘一下。和大家一起分享小成果。
JS: escape :
- js使用数据时可以使用escape
- 例如:搜藏中history纪录。
- 0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
解码使用:unescape
C#:
HttpUtility.UrlEncode
HttpUtility.UrlDecode
JS: encodeURI :
- 进行url跳转时可以整体使用encodeURI
- 例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");
解码使用decodeURI();
C#: decodeURIComponent
JS: encodeURIComponent :
- 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。
- 例如:<script language="javascript">document.write("<a href="http://passport.baidu.com/?logout&aid=7& u="+encodeURIComponent("http://cang.baidu.com/bruce42")+"">退出</a& gt;");</script>
解码使用decodeURIComponent()
C#:
[HttpContext.Current.]Server.UrlDecode
[HttpContext.Current.]Server.UrlEncode
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,",(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ",(,),*,-,.,_,~,0-9,a-z,A-Z
我们需要一些真正属于自己的时间,来进行总结,来进行思考。如果你每天总是忙于学习新东西,忙于解决各种问题,完成各种工作,缺没有给自己预留1到2个小时的时间来进行总结和思考提炼,那么你将很难产生突破性,创新的好点子!
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。