• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > JavaScript、C# URL编码、解码总结

JavaScript、C# URL编码、解码总结

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了javascript:c m01,javascript:c m30,javascript c标签,javascript 调用c,javascript与c语言等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

JavaScript部分

encodeURI() (解码为:decodeURI()):不会转义的字符:- _ . ! ~ * ‘ ( ) ;/?:@&=+$,#

例如:
encodeURI(“http://www.weikejianghu.com?a=-_.!~*'();/?:@&=+$,#”)
输出:
“http://www.weikejianghu.com?a=-_.!~*'();/?:@&=+$,#”
</div>

encodeURIComponent() (解码为:decodeURIComponent() ):不会转义的字符: – _ . ! ~ * ‘ ( )

例如:

encodeURIComponent(“http://www.weikejianghu.com?a=-_.!~*'();/?:@&=+$,#”)

输出:

“http%3A%2F%2Fwww.weikejianghu.com%3Fa%3D-_.!~*'()%3B%2F%3F%3A%40%26%3D%2B%24%2C%23”

区别:对于;/?:@&=+$,#这些字符的处理。

还有个附加的: escape() ,不过 ECMAScript v3 反对使用该方法。原因猜测是根据转义序列有关,escape()的转移序列为:
对于代码单元小于等于0xFF的被替换字符,使用 %xx 格式的两位数转义序列。对于代码单元大于0xFF的被替换字符,使用 %uxxxx 格式的四位数转义序列。
具体的可以研究一下ECMAScript的规范,由于本人道行太浅,就不深入研究了,哈。。 unescape() 同样不推荐使用。

C#部分:

C#部分比较混乱,不仅有很多urlencode,还有好多htmlencode。但其实在处理url时我们只关注url部分就好了,html那部分当我们处理html时才会用到,如预防xss攻击时应该就需要那些htmlencode,htmldecode了。

下面说一下url的常用方法:

Server.UrlEncode(解码:Server.UrlDecode):
Server.UrlEncode使用系統预设编码做为参数调用HttpUtility.UrlEncode编码,所以如果系统全局都用UTF8格式编码,这两个方法就是一样的(至于是否使用了系统预设编码这个还有待考证,没有找到官方说法)。
HttpUtility.UrlEncode(解码:HttpUtility. UrlDecode)

例如:

HttpUtility.UrlEncode(“http://www.weikejianghu.com?a=-_.!~*'();/?:@&=+$,#”)

输出:

http%3a%2f%2fwww.weikejianghu.com%3fa%3d-_.!%7e*%27()%3b%2f%3f%3a%40%26%3d%2b%24%2c%23

可见:此方法会对url地址进行编码。但是有一点要知道,就是此方法会把空格编码为+号而不是十六进制的%20,所以此方法编码参数中如果存在空格会造成错误。

Uri.EscapeUriString(解码:没找到对应的):会对中文、空格等进行转义。

例如:

Uri.EscapeUriString(“http://www.weikejianghu.com?a=中国&123 -_.!~*'();/?:@&=+$,#”)

输出:

http://www.weikejianghu.com?a=%E4%B8%AD%E5%9B%BD&123%20%20%20-_.!~*'();/?:@&=+$,#

可见其不会对网址进行编码。

Uri.EscapeDataString(解码: Uri.UnescapeDataString):不仅对参数,还会对网址进行编码。

例如:

Uri.EscapeDataString(“http://www.weikejianghu.com?a=中国&123 -_.!~*'();/?:@&=+$,#”)

输出:http%3A%2F%2Fwww.weikejianghu.com%3Fa%3D%E4%B8%AD%E5%9B%BD%26123%20%20%20-_.%21~%2A%2
7%28%29%3B%2F%3F%3A%40%26%3D%2B%24%2C%23

所以,总结:

不需要编码://可用:JavaScript中用encodeURI,否则用encodeURIComponent,C#中用Uri.EscapeUriString否则用Uri.EscapeDataString

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • JavaScript、C# URL编码、解码总结

相关文章

  • 2017-05-11前端开发必知的15个jQuery小技巧
  • 2017-05-11一道面试题引发的对javascript类型转换的思考
  • 2017-05-11JS区分Object与Aarry的六种方法总结
  • 2017-05-11将鼠标焦点定位到文本框最后(代码分享)
  • 2017-05-11微信小程序实现图片轮播及文件上传
  • 2017-05-11微信小程序-获得用户输入内容
  • 2017-05-11angularjs 实现带查找筛选功能的select下拉框实例
  • 2017-05-11原生js实现回复评论功能
  • 2017-05-11Node.js获取前端ajax提交的request信息
  • 2017-05-11详解能在多种前端框架下使用的表格控件

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
    • Bootstrap输入框组件简单实现代码
    • javascrip学习总结
    • 图片上传之FileAPI与NodeJs
    • Angular之指令Directive用法详解
    • 利用JS实现文字的聚合动画效果
    • Vue.js实现一个漂亮、灵活、可复用的提示组件示例
    • jQuery监听浏览器窗口大小的变化实例
    • 前端Js框架汇总
    • js获取json中key所对应的value值的简单方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有