JS与C#编码解码

JS和C#都内置了编码和解码的功能,并提供了多种编码和解码方式。下面我将具体讲解JS和C#中的编码和解码,并提供两个示例来演示编码和解码的过程。

JS中的编码和解码

在JS中,我们通常使用encodeURIencodeURIComponent来对URL进行编码,使用decodeURIdecodeURIComponent对URL进行解码。下面是具体的使用方式:

encodeURI

var uri = 'https://www.example.com/读书?category=编程';
var encodedUri = encodeURI(uri);
console.log(encodedUri); // https://www.example.com/%E8%AF%BB%E4%B9%A6?category=%E7%BC%96%E7%A8%8B

encodeURI的作用是对URL进行编码,其中除了特定字符(例如::/?#[]@!$&'()*+,;=)外的所有字符都不会被编码。在上面的示例中,:/?=等特定字符没有被编码,而中文字符则被编码成了%E8%AF%BB%E4%B9%A6

encodeURIComponent

var uri = 'https://www.example.com/读书?category=编程';
var encodedUriComponent = encodeURIComponent(uri);
console.log(encodedUriComponent); // https%3A%2F%2Fwww.example.com%2F%E8%AF%BB%E4%B9%A6%3Fcategory%3D%E7%BC%96%E7%A8%8B

encodeURI不同的是,encodeURIComponent会对除了字母、数字、-_.!~*'()之外的所有字符进行编码。在上面的示例中,字母、数字、-_.等字符没有被编码,而中文字符则被编码成了%E8%AF%BB%E4%B9%A6

decodeURI

var encodedUri = 'https://www.example.com/%E8%AF%BB%E4%B9%A6?category=%E7%BC%96%E7%A8%8B';
var uri = decodeURI(encodedUri);
console.log(uri); // https://www.example.com/读书?category=编程

decodeURI的作用是对URL进行解码,与encodeURI相对应。在上面的示例中,%E8%AF%BB%E4%B9%A6被解码成了中文字符。

decodeURIComponent

var encodedUriComponent = 'https%3A%2F%2Fwww.example.com%2F%E8%AF%BB%E4%B9%A6%3Fcategory%3D%E7%BC%96%E7%A8%8B';
var uri = decodeURIComponent(encodedUriComponent);
console.log(uri); // https://www.example.com/读书?category=编程

encodeURIComponent相对应的是decodeURIComponent,功能是对URL进行解码。在上面的示例中,%E8%AF%BB%E4%B9%A6被解码成了中文字符。

C#中的编码和解码

在C#中,我们可以使用System.Net.WebUtilitySystem.Web.HttpUtility两个类来进行编码和解码,这两个类提供了多种编码和解码方式。下面是具体的使用方式:

System.Net.WebUtility

string uri = "https://www.example.com/读书?category=编程";
string encodedUri = WebUtility.UrlEncode(uri); 
Console.WriteLine(encodedUri); // https%3a%2f%2fwww.example.com%2f%e8%af%bb%e4%b9%a6%3fcategory%3d%e7%bc%96%e7%a8%8b

WebUtility.UrlEncode的作用是对URL进行编码,与JS中的encodeURIComponent一致。在上面的示例中,:/?=等特定字符都被编码成了%3a%2f%3f%3d,而中文字符则被编码成了%e8%af%bb%e4%b9%a6%e7%bc%96%e7%a8%8b

string encodedUri = "https%3a%2f%2fwww.example.com%2f%e8%af%bb%e4%b9%a6%3fcategory%3d%e7%bc%96%e7%a8%8b";
string uri = WebUtility.UrlDecode(encodedUri);
Console.WriteLine(uri); // https://www.example.com/读书?category=编程

与JS中的decodeURIComponent相似,WebUtility.UrlDecode的作用是对URL进行解码。在上面的示例中,%e8%af%bb%e4%b9%a6%e7%bc%96%e7%a8%8b被解码成了中文字符。

System.Web.HttpUtility

string uri = "https://www.example.com/读书?category=编程";
string encodedUri = HttpUtility.UrlEncode(uri); 
Console.WriteLine(encodedUri); // https%3a%2f%2fwww.example.com%2f%e8%af%bb%e4%b9%a6%3fcategory%3d%e7%bc%96%e7%a8%8b

HttpUtility.UrlEncode的作用与WebUtility.UrlEncode一致,在上面的示例中的结果也是一样的。

string encodedUri = "https%3a%2f%2fwww.example.com%2f%e8%af%bb%e4%b9%a6%3fcategory%3d%e7%bc%96%e7%a8%8b";
string uri = HttpUtility.UrlDecode(encodedUri);
Console.WriteLine(uri); // https://www.example.com/读书?category=编程

同样的,HttpUtility.UrlDecode的作用与WebUtility.UrlDecode一致,在上面的示例中的结果也是一样的。

综上所述,无论是JS还是C#,我们都可以使用内置的编码和解码函数对URL进行处理,以处理URL中的特殊字符。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS与C#编码解码 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • JavaScript中5个常用的对象

    当我在学习JavaScript时,我发现其中的Object类型有很多种,有些我根本没有听说过。经过深入研究后,我总结了JavaScript中最常用的5个对象类型,并在下面进行了详细解释和示例说明。 1. Array对象 数组对象是JavaScript中最常用的一个类型。它允许我们将数据存储在一个变量中,并按索引号访问每个数据,它还提供了很多有用的方法和属性,…

    JavaScript 2023年5月27日
    00
  • 浅谈golang的http cookie用法

    浅谈golang的http cookie用法 什么是Cookie? HTTP协议是无状态的,也就是说,当客户端加载一个页面或者访问一个接口时,服务器并不知道这个请求与之前的请求之间有关系,而Cookie就是为了解决这个问题的,它可以把一些关键性的信息,如用户的登录状态等,保存在客户端,以便在后续的请求中向服务器传递这些信息。 Cookie有两种类型,分别是s…

    JavaScript 2023年6月11日
    00
  • JS Common 2 之比较常用到的函数第1/3页

    JS Common 2 之比较常用到的函数第1/3页 简介 本攻略介绍了 JavaScript 中比较常用到的函数,包括字符串处理、数组处理、数学运算、日期处理等方面。 字符串处理 substring() substring() 方法用于提取字符串中指定位置的子字符串。 语法:string.substring(startIndex, endIndex) 示例…

    JavaScript 2023年6月11日
    00
  • java NIO 详解

    Java NIO 详解 Java NIO(New IO)是一种基于缓冲区、非阻塞IO的API集,主要用于替代传统的Java IO API。它可以更高效地处理IO数据,具有更好的扩展性和灵活性,尤其适用于处理大量连接和请求的场景。 在本文中,我们将从以下几个方面对Java NIO进行详细讲解: 缓冲区(Buffer)及其操作 通道(Channel)及其操作 选…

    JavaScript 2023年5月28日
    00
  • JS实现图片切换效果

    下面我将详细讲解一下如何用JS实现图片切换效果。 前置知识 在开始之前,需要了解以下基础知识: HTML:了解HTML基本标签结构。 CSS:了解CSS基本样式和选择器。 DOM:了解DOM操作和事件的绑定。 JavaScript:了解JavaScript基本语法和常用方法。 如果您还不熟悉以上内容,建议先学习一下再来尝试。 实现步骤 接下来,我们将分步骤地…

    JavaScript 2023年6月11日
    00
  • JavaScript函数、闭包、原型、面向对象学习笔记

    JavaScript函数学习笔记 什么是函数 函数是 JavaScript 中的一个代码块,它可以重复执行,并且可通过传入参数和返回值来实现对信息的处理和存储。 函数的定义方式 JavaScript 中有多种定义函数的方式,以下是其中常用的三种方式: 1. 函数声明 使用 function 关键字定义的函数,代码如下: function functionNa…

    JavaScript 2023年5月27日
    00
  • JS实用技巧实现loading加载示例详解

    JS实用技巧实现loading加载示例详解 介绍 在Web开发中,加载速度是一个很重要的问题,如果页面加载时间过长,会影响用户体验。为了优化用户体验,我们可以使用一个loading加载提示,告诉用户正在加载中,这是一个很好的交互方式。本篇文章将介绍如何使用一些JS实用技巧实现loading加载示例。 实现方式 1. 使用CSS动画实现 使用CSS动画可以实现…

    JavaScript 2023年5月27日
    00
  • 微信小程序实现自定义底部导航

    实现微信小程序自定义底部导航需要经过以下步骤:1. 在app.json文件中定义底部导航栏2. 创建对应的底部导航栏页面3. 在底部导航栏页面中引用相应的子页面4. 最后,在各自页面中添加导航栏的相应内容,如背景色、图标及文字等。 下面来看一下具体的实现步骤以及示例。 步骤一: 在app.json文件中定义底部导航栏 在app.json文件中定义tabBar…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部