当前位置: 首页 > news >正文

【C#】知识点实践序列之UrlEncode在线URL网址编码、解码

欢迎来到《小5讲堂》,大家好,我是全栈小5。
这是2024年第8篇文章,此篇文章是C#知识点实践序列文章,
博主能力有限,理解水平有限,若有不对之处望指正!
地址编码大家应该比较经常遇到和使用到,一起来看看是如何编码和解码的吧!

在这里插入图片描述

目录

  • 前言
  • 基本信息
    • 编码场景
  • 地址编码解码
    • 地址编码
      • 效果
      • 代码
    • 地址解码
      • 效果
      • 代码
  • 疑问解答

在这里插入图片描述

前言

对接过接口的小伙伴应该对地址编码不陌生,对于我们刚接触时,心中都有疑问,为什么要编码,直接原样字符串传递不可以吗?
我们带着这个疑问,一步步来解开谜团!

基本信息

C#中的地址编码和地址解码通常用于处理 URL 中的特殊字符,以确保 URL 的正确性和安全性。这种编码/解码操作可以使用
UrlEncode 和 UrlDecode 方法来完成。比如空格和问号。

编码场景

比如:C站下面的文本搜索区域,当我们输入文本搜索时,地址栏就会自动把特殊符号进行了编码
原始文本:C# URL编码?和解码&
编码文本:C%23%20URL编码%3F和解码%26
从下面,我们可以知道,#井号、空格、?问号、&和符号均被自动进行了编码
&这个和符号被编码的目的很简单,因为地址栏的&和符号是用来分隔参数,所以不能原样显示,否则可能会出现,就达不到参数值的正确性了
在这里插入图片描述

地址编码解码

地址编码

从上面基本信息我们可以知道,对地址编码主要是为了正确性和安全性,一般地址参数都是用问号后面的来标识,所以地址参数有问号就需要特殊处理。
这里需要注意的是,地址编码是指针对问号后面的参数进行编码,而不是全地址进行编号,否则就无法发起http请求了。

效果

  • 没有进行地址参数处理,就会出现下面全地址编码,这个是不对的
    在这里插入图片描述
  • 地址参数编码
    在这里插入图片描述

代码

string urlText = "https://so.csdn.net/so/search?spm=1001.2227.3001.4498&q=C# URL编码?和解码&&t=&u=";
string urlValue = urlText.Split('?')[0];
string urlParam = urlText.Split('?')[1];
string urlNew = $"{urlValue}?{System.Web.HttpUtility.UrlEncode(urlParam)}";
textBox2.Text = urlNew;

地址解码

在 C# 中,地址解码是将经过地址编码的字符串还原为原始字符串的过程。
常用的地址解码方法是 HttpUtility.UrlDecode,该方法在 System.Web 命名空间中定义。

效果

在这里插入图片描述

代码

string url = "https://so.csdn.net/so/search?spm%3d1001.2227.3001.4498%26q%3dC%23+URL%e7%bc%96%e7%a0%81";
string urlNew = System.Web.HttpUtility.UrlDecode(url);
textBox2.Text = urlNew;

疑问解答

如果在 C# 中不进行地址编码,可能会出现以下问题:

1.URI 格式错误
特殊字符(如空格、问号、等号等)在 URI 中有特定的含义,如果不经过编码直接使用,可能会导致 URI 格式错误,无法正确解析和处理。
2.安全问题
在构造包含用户输入的 URI 时,如果不对用户输入的特殊字符进行编码,可能会导致安全问题。例如,恶意用户可能通过在 URI 中插入恶意代码或注入攻击来获取未经授权的数据或执行非法操作。
3.数据丢失或错误
某些字符在 URI 中可能会被服务器或其他中间件解析或处理时误解。在进行传输或处理过程中,这些字符可能被修改或丢失,导致 URI 不符合预期。
4.兼容性问题
不同的服务器或客户端可能对特殊字符的处理方式有所不同。如果不进行地址编码,可能会导致不同环境下的兼容性问题,影响系统的通用性和可移植性。

总结:温故而知新,不同阶段重温知识点,会有不一样的认识和理解,博主将巩固一遍知识点,并以实践方式和大家分享,若能有所帮助和收获,这将是博主最大的创作动力和荣幸。也期待认识更多优秀新老博主。

相关文章:

【C#】知识点实践序列之UrlEncode在线URL网址编码、解码

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是2024年第8篇文章,此篇文章是C#知识点实践序列文章, 博主能力有限,理解水平有限,若有不对之处望指正! 地址编码大家应该比较经常遇到和使用到&…...

泽攸科技完全自主研制的电子束光刻机取得阶段性成果

国产电子束光刻机实现自主可控,是实现我国集成电路产业链自主可控的重要一环。近日,泽攸科技联合松山湖材料实验室开展的全自主电子束光刻机整机的开发与产业化项目取得重大进展,成功研制出电子束光刻系统,实现了电子束光刻机整机…...

上篇 | CDP应用篇之兴趣标签的3种破圈玩法

谈到客户洞察,在这个以客户为中心、以数据为驱动的客户经营时代,贯通数据,联动CDP客户数据平台、SCRM、会员、营销一站式的客户洞察解决方案,成为了头部房企们的万千宠爱。其中关于人群兴趣标签的破圈玩法,我们结合过往…...

智能的核心依然是哲学的三个基本问题

智能的发展与哲学的三个基本问题密切相关,作为一个复杂领域,智能涉及到人类认知和行为的模拟与复制,因而也会涉及到哲学的核心问题。 存在论:智能的存在论问题涉及到什么是智能以及智能系统的本质。这包括对于意识、思维和自主性的…...

用python实现提取word中的所有图片

你可以使用python-docx库来处理word文件,然后遍历文件中的所有形状,找到图片。 首先,你需要安装python-docx库。在命令行中输入以下命令进行安装: 复制代码 pip install python-docx 然后,你可以使用以下代码提取wo…...

CoTracker 环境配置与ORB 特征点提取结合实现视频特征点追踪

CoTracker 环境配置&与ORB 特征点提取结合实现视频特征点追踪 文章目录 CoTracker 环境配置&与ORB 特征点提取结合实现视频特征点追踪Step1:配置 CoTracker 环境Step2:运行官方的例程Step3:结合 ORB 特征点提取结果展示: …...

10000000000 大瓜背后的真相(附 PDD 算法真题)

10 个亿的大事? 京东诉阿里强迫商家「二选一」,京东胜诉,获阿里赔偿 10 亿。 很多小伙伴见到公主号开创了锐评时事板块,当天就在后台留言问我看法。 先说结论:这是一则「媒体影响力」远大于「实际意义」的报道。 首先&…...

python爬虫,简单的requests的get请求,百度搜索实例

1、百度搜索实例 import requests url https://www.baidu.com/s? # key_word 迪丽热巴 key_word input(输入搜索内容:) headers {User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537…...

UNION 和 UNION ALL

概述 UNION 和 UNION ALL 都是 SQL 中用于将多个 SELECT 语句的结果合并成一个结果集的操作符。它们都适用于需要将多个表或查询结果合并在一起的情况。但是它们的行为略有不同。 区别 UNION 和 UNION ALL 的区别在于,UNION 会将结果集合并成一个不含重复行的结果…...

NPS 内网穿透安装

NPS 内网穿透安装 NPS 内网穿透安装服务端搭建SSH配置流程 NPS 内网穿透安装 NPS分为服务端和客户端,对应的不同操作系统软件可以在GitHub RELEASES自行选择下载。 服务端搭建 由于个人非企业级使用,为了方便直接使用docker安装 1.docker运行 (注意…...

【C++学习笔记】C++多值返回写法

C不像python可以轻易地处理多值返回问题,处理使用指针或者引用将需要返回的值通过参数带出来,还有几种特殊的方式。 引用自:https://mp.weixin.qq.com/s/VEvUxpcJPsxT9kL7-zLTxg 1. Tuple tie 通过使用std::tie,我们可以将tuple…...

读取带有梯度的张量的具体的值

问题:存在一个带有梯度的张量tensor_example,怎么读取它具体的值 方法:可以使用 .detach().cpu().numpy() 的组合。这样可以在保留值的同时,将张量从计算图中分离(detach)并移动到 CPU 上。 示例&#xf…...

【分布式微服务专题】SpringSecurity快速入门

目录 前言阅读对象阅读导航前置知识笔记正文一、Spring Security介绍1.1 什么是Spring Security1.2 它是干什么的1.3 Spring Security和Shiro比较 二、快速开始2.1 用户认证2.1.1 设置用户名2.1.1.1 基于application.yml配置文件2.1.1.2 基于Java Config配置方式 2.1.2 设置加密…...

EasyRecovery2024永久免费版电脑数据恢复软件

EasyRecovery是一款操作安全、价格便宜、用户自主操作的非破坏性的只读应用程序,它不会往源驱上写任何东西,也不会对源驱做任何改变。它支持从各种各样的存储介质恢复删除或者丢失的文件,其支持的媒体介质包括:硬盘驱动器、光驱、…...

iphone 苹果 IOS 越狱详细图文保姆级教程非常简单

现在随着各个工具的升级,越狱的难度也是越来越低,还记得 iphone 4 的时候我越狱还是花钱请别人搞得,现在只要你的机型支持越狱,下个工具点一点就可以了,非常简单 目前来说整个越狱过程中,寻找合适机型是最…...

华为HarmonyOS 创建第一个鸿蒙应用 运行Hello World

使用DevEco Studio创建第一个项目 Hello World 1.创建项目 创建第一个项目,命名为HelloWorld,点击Finish 选择Empty Ability模板,点击Next Hello World 项目已经成功创建,接来下看看效果 2.预览 Hello World 点击右侧的预…...

[C#]Onnxruntime部署Chinese CLIP实现以文搜图以文找图功能

【官方框架地址】 https://github.com/OFA-Sys/Chinese-CLIP 【算法介绍】 在当今的大数据时代,文本信息处理已经成为了计算机科学领域的核心议题之一。为了高效地处理海量的文本数据,自然语言处理(NLP)技术应运而生。而在诸多N…...

openssl ans1定义的实体

由于openssl中的ASN1的结构是通过宏来定义的,导致我们经常找不到他的结构在哪里,通过阅读rfc,并且对照OPENSSL,发现OPENSSL中的结构基本是按照相关rfc中的名称,在openssl中进行搜索,就能找到具体的定义了。…...

【Linux Shell】4. 数组

文章目录 【 1. 数组的定义 】【 2. 读取数组 】【 3. 关联数组 】3.1 关联数组的定义3.2 关联数组元素的调用 【 4. 获取数组中的所有元素 】【 5. 获取数组的长度 】 数组中可以存放多个值。 Bash Shell 只支持一维数组(不支持多维数组),初…...

蓝牙运动耳机哪款好用?运动用什么耳机比较好?2024运动耳机推荐

​在众多的耳机类型中,运动耳机因其独特的设计和功能而备受青睐。它们不仅要具备出色的音质,还需要能够适应激烈的运动环境,如防水、防汗、牢固耐用等。今天,我想向大家推荐一些在这些方面表现出色的运动耳机,这些耳机…...

XD6500S一款串口SiP模块 射频LoRa芯片 内置sx1262

1.1产品介绍 XD6500S是一款集射频前端和LoRa射频于一体的LoRa SIP模块系列收发器SX1262 senies,支持LoRa⑧和FSK调制。LoRa技术是一种扩频协议优化低数据速率,超长距离和超低功耗用于LPWAN应用的通信。 XD6500S设计具有4.2 mA的有效接收电流消耗&#…...

【华为OD机试真题2023CD卷 JAVAJS】测试用例执行计划

华为OD2023(C&D卷)机试题库全覆盖,刷题指南点这里 测试用例执行计划 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 某个产品当前迭代周期内有N个特性()需要进行覆盖测试,每个特性都被评估了对应的优先级,特性使用其ID作为下标进行标识。 设计了M个测试用…...

猫长期吃猫粮好吗?主食冻干猫粮那种好吃又健康

许多铲屎官可能认为,只需给猫咪喂食猫粮就足够了。然而,猫咪实际上是肉食动物,对蛋白质的需求非常高。冻干猫粮采用低温真空干燥处理技术,将鲜肉经过预冻、升华、解析三个过程,去除水分的同时保持蛋白质等营养物质不变…...

计算机毕业设计-----ssm停车位租赁系统

项目介绍 该系统采用了经典的springmvc,spring,mybatis的框架组合,对于物业公司来说,有助于管理车位信息。系统分为了两个角色:车主和租客。 车主主要功能包括: 停车位信息 停车位列表 添加停车位 租赁合…...

Git保姆级安装教程

Git保姆级安装教程 一、去哪下载二、安装2.1 具体安装步骤2.2 设置全局用户签名 一、去哪下载 1、官网(有最新版本):https://git-for-windows.github.io/ 2、本人学习时安装的版本,链接:https://pan.baidu.com/s/1uAo…...

听GPT 讲Rust源代码--compiler(34)

File: rust/compiler/rustc_middle/src/ty/print/mod.rs 在Rust源代码中&#xff0c;文件rust/compiler/rustc_middle/src/ty/print/mod.rs的作用是定义了打印类型和其他相关信息的功能。 具体来说&#xff0c;该文件中定义了三个trait&#xff0c;分别为Print<tcx>、Pri…...

视频融合云平台/智慧监控平台EassyCVR告警警告出错是什么原因?该如何解决?

视频集中存储/云存储/视频监控管理平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等。AI智能/大数据视频分析EasyCVR平台已经广泛应用在工地、工厂、园区、楼…...

Gin 路由注册与请求参数获取

Gin 路由注册与请求参数获取 文章目录 Gin 路由注册与请求参数获取一、Web应用开发的两种模式1.前后端不分离模式2.前后端分离模式 二、RESTful介绍三、API接口3.1 RESTful API设计指南3.2 API与用户的通信协议3.3 RestFul API接口设计规范3.3.1 api接口3.3.2 接口文档&#xf…...

Linux第11步_解决“挂载后的U盘出现中文乱码”

学习完“通过终端挂载和卸载U盘”&#xff0c;我们发现U盘下的中文文件名会出现乱码&#xff0c;现在讲解怎么解决这个问题。其实就是复习一下“通过终端挂载和卸载U盘”&#xff0c;单独讲解&#xff0c;是为了解决问题&#xff0c;一次性搞好&#xff0c;我们会不长记性。 在…...

【第一节】安装java jdk 21

在 Java Downloads | Oracle 中国 网站下载jdk21的包 查看jdk 命令 /usr/libexec/java_home -V 设置环境变量 配置环境变量 在~/.bash_profile文件里面加入以下环境变量 export JAVA_HOME/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home export PATH$PATH:$J…...

做网站那个语言好/今日国际新闻头条新闻

2019独角兽企业重金招聘Python工程师标准>>> ## 问题描述 服务器安装redis后&#xff0c;开始使用&#xff0c;发现无法正常使用&#xff0c;服务异常 报错信息 UnhandledPromiseRejectionWarning: ReplyError: MISCONF Redis is configured to save RDB snapshots,…...

装饰公司营销网站建设/微信推广方法

背景&#xff1a;源表中的时间字段存在不合理的数据格式&#xff0c;用户在视图中对数据使用case when 对时间字段进行了格式化的处理。查询视图的时候使用改字段进行条件查询&#xff0c;发现:使用or 、between...and、 and 条件查询视图报非法的时间日期类型数据&#xff0c;…...

国家税务总局网站官网/做推广app赚钱的项目

jagub 于 2009-06-18 08:10:22发表:或者在安装的时候提供可选择项目&#xff0c;岂不是更人性化大宝 于 2009-06-17 22:10:56发表:我安装时总是断网拨线(内网中)&#xff0c;免得?嗦HRF 于 2009-06-17 21:41:48发表:学习中。。。。jagub 于 2009-06-17 15:47:09发表:其实大家老…...

全球最大的外贸平台/seo网站优化推广教程

黑客技术点击右侧关注&#xff0c;了解黑客的世界&#xff01;Linux编程点击右侧关注&#xff0c;免费入门到精通&#xff01;回想一下我们发布 iOS 应用&#xff0c;不仅步骤繁琐&#xff0c;非常耗时。一旦其中一步失误了&#xff0c;又得重新来。作为一名优秀的工程师不应该…...

index.html网站怎么做/外贸网站制作公司

1.几乎跨域是前端面试题中必问的 每次这样问 一是问我们产生跨域的原因,解决的跨域的原理 原因无非就是浏览器的同源策略导致 不同源头的服务器地址 浏览器默认是不会使用回来的数据 记住并不是请求失败了 而是回来数据 浏览器根据同源策略原则 而不使用 解决方法:1 后端配…...

江苏建设准考证打印在哪个网站/百度推广一般要多少钱

有时为了推断是否存在一个字符串数组内值&#xff0c;或者&#xff0c;我们是否要值&#xff1a; 比方&#xff1a;推断char name[13] {0};经过一系列的赋值或者其它的操作。须要推断里面的值为空。即没有不论什么内容。 strcmp(name, "\0");返回值假设是0&#xff…...