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 】
相关推荐:
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
PythonWeb开发入门教程_Flask快速构建Web应用
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
b2c电商网站制作流程,b2c水平综合的电商平台?
如何在阿里云虚拟服务器快速搭建网站?
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
Laravel怎么调用外部API_Laravel Http Client客户端使用
桂林网站制作公司有哪些,桂林马拉松怎么报名?
canvas 画布在主流浏览器中的尺寸限制详细介绍
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
详解Huffman编码算法之Java实现
如何用美橙互联一键搭建多站合一网站?
Laravel如何实现用户密码重置功能?(完整流程代码)
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
手机软键盘弹出时影响布局的解决方法
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
Laravel观察者模式如何使用_Laravel Model Observer配置
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
如何彻底删除建站之星生成的Banner?
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
想要更高端的建设网站,这些原则一定要坚持!
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
简历没回改:利用AI润色让你的文字更专业
如何为不同团队 ID 动态生成多个“认领值班”按钮
独立制作一个网站多少钱,建立网站需要花多少钱?
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
无锡营销型网站制作公司,无锡网选车牌流程?
iOS中将个别页面强制横屏其他页面竖屏
如何在云服务器上快速搭建个人网站?
网站制作免费,什么网站能看正片电影?
Firefox Developer Edition开发者版本入口
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
在centOS 7安装mysql 5.7的详细教程
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何获取PHP WAP自助建站系统源码?
制作电商网页,电商供应链怎么做?
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
详解jQuery停止动画——stop()方法的使用
音乐网站服务器如何优化API响应速度?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
高性能网站服务器部署指南:稳定运行与安全配置优化方案
什么是javascript作用域_全局和局部作用域有什么区别?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
Internet Explorer官网直接进入 IE浏览器在线体验版网址
Python自动化办公教程_ExcelWordPDF批量处理案例
Laravel如何使用.env文件管理环境变量?(最佳实践)

