牛骨文教育服务平台(让学习变的简单)
博文笔记

.Net工作流项目实战——前台到后台传值的编码、解码解决方案

创建时间:2016-05-15 投稿人: 浏览次数:1390

   在页面传值的过程中,通过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&amp; 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个小时的时间来进行总结和思考提炼,那么你将很难产生突破性,创新的好点子!

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。