JavaScript、C# URL编码、解码总结
发布时间 - 2026-01-10 22:42:38 点击率:次JavaScript部分

encodeURI() (解码为:decodeURI()):不会转义的字符:- _ . ! ~ * ‘ ( ) ;/?:@&=+$,#
例如: encodeURI(“https://www.?a=-_.!~*'();/?:@&=+$,#”) 输出: “https://www.?a=-_.!~*'();/?:@&=+$,#”
encodeURIComponent() (解码为:decodeURIComponent() ):不会转义的字符: – _ . ! ~ * ‘ ( )
例如:
encodeURIComponent(“https://www.?a=-_.!~*'();/?:@&=+$,#”)
输出:
“http%3A%2F%2Fwww.%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(“https://www.?a=-_.!~*'();/?:@&=+$,#”)
输出:
http%3a%2f%2fwww.%3fa%3d-_.!%7e*%27()%3b%2f%3f%3a%40%26%3d%2b%24%2c%23
可见:此方法会对url地址进行编码。但是有一点要知道,就是此方法会把空格编码为+号而不是十六进制的%20,所以此方法编码参数中如果存在空格会造成错误。
Uri.EscapeUriString(解码:没找到对应的):会对中文、空格等进行转义。
例如:
Uri.EscapeUriString(“https://www.?a=中国&123 -_.!~*'();/?:@&=+$,#”)
输出:
https://www.?a=%E4%B8%AD%E5%9B%BD&123%20%20%20-_.!~*'();/?:@&=+$,#
可见其不会对网址进行编码。
Uri.EscapeDataString(解码: Uri.UnescapeDataString):不仅对参数,还会对网址进行编码。
例如:
Uri.EscapeDataString(“https://www.?a=中国&123 -_.!~*'();/?:@&=+$,#”)
输出:http%3A%2F%2Fwww.%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
# JavaScript
# C#
# URL编码
# encodeURI、decodeURI
# encodeURIComponent
# decodeURIComponent
# asp.net URL编码与解码
# JS前端知识点 运算符优先级
# URL编码与解码
# String
# Math
# arguments操作整理总结
# javascript URL编码和解码使用说明
# 详谈js对url进行编码和解码(三种方式的区别)
# Javascript下的urlencode编码解码方法附decodeURIComponent
# JS对URL字符串进行编码/解码分析
# .Net结合JS实现URL编码与解码
# 会对
# 中国
# 则用
# 有个
# 有很多
# 不需要
# 就不
# 推荐使用
# 这两个
# 要知道
# 当我们
# 会把
# 都用
# 没有找到
# 但其
# 四位
# 时才
# 时应
# 两位数
# 见其
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
C++时间戳转换成日期时间的步骤和示例代码
海南网站制作公司有哪些,海口网是哪家的?
Python结构化数据采集_字段抽取解析【教程】
如何快速启动建站代理加盟业务?
深圳网站制作的公司有哪些,dido官方网站?
Android GridView 滑动条设置一直显示状态(推荐)
如何做网站制作流程,*游戏网站怎么搭建?
Laravel如何实现API资源集合?(Resource Collection教程)
linux写shell需要注意的问题(必看)
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
zabbix利用python脚本发送报警邮件的方法
java ZXing生成二维码及条码实例分享
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
javascript如何操作浏览器历史记录_怎样实现无刷新导航
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
网站制作企业,网站的banner和导航栏是指什么?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
,交易猫的商品怎么发布到网站上去?
如何用5美元大硬盘VPS安全高效搭建个人网站?
如何快速搭建FTP站点实现文件共享?
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
如何在万网主机上快速搭建网站?
教学论文网站制作软件有哪些,写论文用什么软件
?
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
如何自定义建站之星网站的导航菜单样式?
使用Dockerfile构建java web环境
如何在万网自助建站中设置域名及备案?
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
如何快速搭建高效服务器建站系统?
Laravel定时任务怎么设置_Laravel Crontab调度器配置
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
HTML 中动态设置元素 name 属性的正确语法详解
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
bing浏览器学术搜索入口_bing学术文献检索地址
利用python获取某年中每个月的第一天和最后一天
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
如何基于云服务器快速搭建网站及云盘系统?
千库网官网入口推荐 千库网设计创意平台入口
jQuery validate插件功能与用法详解
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?

