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

c# 解码 encodeURIComponent

在C#中,如果你需要解码由encodeURIComponent方法编码的URL,你可以使用System.Web命名空间中的HttpUtility.UrlDecode方法。这个方法可以处理由JavaScript的encodeURIComponent方法编码的字符串。

首先,确保你的项目中引用了System.Web命名空间。如果你使用的是.NET Core或.NET 5/6等较新版本,你可能需要安装Microsoft.AspNetCore.WebUtilities包来使用QueryHelpers.ParseQuery和QueryHelpers.AddQueryString方法,因为从.NET Core 3.0开始,System.Web命名空间不再包含在默认项目中。

使用HttpUtility.UrlDecode(适用于.NET Framework) 如果你的项目是.NET Framework项目,可以直接使用HttpUtility.UrlDecode。

using System;
using System.Web; // 引入System.Web命名空间class Program
{static void Main(){string encodedString = "Hello%20World%21"; // 例如,由encodeURIComponent编码的字符串string decodedString = HttpUtility.UrlDecode(encodedString);Console.WriteLine(decodedString); // 输出: Hello World!}
}

使用QueryHelpers.ParseQuery和QueryHelpers.AddQueryString(适用于.NET Core或.NET 5/6) 对于.NET Core或.NET 5/6项目,你可以使用以下方式:

using System;
using Microsoft.AspNetCore.WebUtilities; // 引入Microsoft.AspNetCore.WebUtilities命名空间
using System.Collections.Generic;class Program
{static void Main(){string encodedString = "Hello%20World%21"; // 例如,由encodeURIComponent编码的字符串var decodedString = QueryHelpers.AddQueryString("", encodedString); // 使用AddQueryString进行解码,虽然这不是最直接的方法,但可以作为一种方式处理解码。Console.WriteLine(decodedString); // 输出: Hello World!}
}

然而,对于简单的解码需求,直接使用Uri.UnescapeDataString或.NET Core 3.0及以后版本的System.Web.HttpUtility.UrlDecode会是更好的选择。例如:

string decodedString = Uri.UnescapeDataString(encodedString); // 使用Uri类进行解码
Console.WriteLine(decodedString); // 输出: Hello World!

或者,如果你使用的是较新版本的.NET Core并且想要使用类似于HttpUtility.UrlDecode的功能:

string decodedString = System.Net.WebUtility.UrlDecode(encodedString); // 使用System.Net.WebUtility类进行解码(适用于较新版本的.NET Core)
Console.WriteLine(decodedString); // 输出: Hello World!

确保根据你的项目类型(例如是否为.NET Framework或.NET Core/5/6等)选择合适的方法。在较新的项目中,推荐使用System.Net.WebUtility.UrlDecode。

http://www.lryc.cn/news/2386276.html

相关文章:

  • Spring AI:Java开发者的AI开发新利器
  • Android System UI 深度解析:从架构演进到车载 / TV 场景的全维度定制
  • Spring Cloud Sleuth与Zipkin深度整合指南:微服务链路追踪实战
  • React从基础入门到高级实战:React 基础入门 - 列表渲染与条件渲染
  • 在 stm32 中 volatile unsigned signed 分别有什么作用,分别在什么场景下使用?
  • FreeBSD14.2因为爆内存而导致Xfce4视窗被卡,桌面变黑色,只能看到鼠标在窗体中心,鼠标无反应,键盘无反应
  • k8s-NetworkPolicy
  • spring-ai 集成 mcp 之投机取巧
  • 大语言模型的完整训练周期从0到1的体系化拆解
  • 历年北京邮电大学保研上机真题
  • elementUI 中el-date-picker和el-select的样式调整
  • 《仿盒马》app开发技术分享-- 定位获取(端云一体)
  • 黑马点评--基于Redis实现共享session登录
  • Mujoco 学习系列(二)基础功能与xml使用
  • 比特授权云外壳加密支持Android 15!
  • uniapp使用sse连接后端,接收后端推过来的消息(app不支持!!)
  • 历年复旦大学保研上机真题
  • 黑马点评-实现安全秒杀优惠券(使并发一人一单,防止并发超卖)
  • 解决论文中字体未嵌入的问题
  • leetcode 131. Palindrome Partitioning
  • Android本地语音识别引擎深度对比与集成指南:Vosk vs SherpaOnnx
  • 审计报告附注救星!实现Word表格纵向求和+横向计算及其对应的智能校验
  • 人工智能数学基础实验(四):最大似然估计的-AI 模型训练与参数优化
  • 告别延迟!Ethernetip转modbustcp网关在熔炼车间监控的极速时代
  • Kotlin协程优化Android ANR问题
  • Visual Studio Code插件离线安装指南:从市场获取并手动部署
  • 构建安全AI风险识别大模型:CoT、训练集与Agent vs. Fine-Tuning对比
  • 计算机视觉---YOLOv1
  • 无法同步书签,火狐浏览器修改使用国内的账号服务器
  • 动态防御体系实战:AI如何重构DDoS攻防逻辑