JavaScript、C# URL编码、解码总结

JavaScript、C# URL编码、解码总结

在进行URL传输时,为了防止特殊字符导致的错误,需要对URL进行编码。JavaScript和C#都提供了URL编码、解码的方法。

JavaScript URL编码、解码

在JavaScript中,可以使用encodeURIencodeURIComponent对URL进行编码,使用decodeURIdecodeURIComponent对URL进行解码。

encodeURI编码

encodeURI可以用来对整个URL进行编码,但只会对URI中的特殊字符进行编码,保留一些特殊字符,如;,/?:@&=+$#等。

const url = "https://www.example.com/search?q=JavaScript编码";
const encodedUrl = encodeURI(url);
console.log(encodedUrl); // https://www.example.com/search?q=JavaScript%E7%BC%96%E7%A0%81

encodeURIComponent编码

encodeURIComponent则可以用来编码URI中的所有特殊字符,包括;,/?:@&=+$#等。

const url = "https://www.example.com/search?q=JavaScript编码";
const encodedUrl = encodeURIComponent(url);
console.log(encodedUrl); // https%3A%2F%2Fwww.example.com%2Fsearch%3Fq%3DJavaScript%E7%BC%96%E7%A0%81

decodeURI解码

decodeURI可以用来对整个URL进行解码,与encodeURI对应。

const encodedUrl = "https://www.example.com/search?q=JavaScript%E7%BC%96%E7%A0%81";
const url = decodeURI(encodedUrl);
console.log(url); // https://www.example.com/search?q=JavaScript编码

decodeURIComponent解码

decodeURIComponent则可以用来解码URI中的所有特殊字符。

const encodedUrl = "https%3A%2F%2Fwww.example.com%2Fsearch%3Fq%3DJavaScript%E7%BC%96%E7%A0%81";
const url = decodeURIComponent(encodedUrl);
console.log(url); // https://www.example.com/search?q=JavaScript编码

C# URL编码、解码

在C#中,可以使用HttpUtility.UrlEncodeHttpUtility.UrlDecode对URL进行编码、解码。

HttpUtility.UrlEncode编码

HttpUtility.UrlEncode可以用来对整个URL进行编码,会对所有特殊字符进行编码,包括;,/?:@&=+$#等。

string url = "https://www.example.com/search?q=JavaScript编码";
string encodedUrl = HttpUtility.UrlEncode(url);
Console.WriteLine(encodedUrl); // https%3a%2f%2fwww.example.com%2fsearch%3fq%3dJavaScript%e7%bc%96%e7%a0%81

HttpUtility.UrlDecode解码

HttpUtility.UrlDecode可以用来对整个URL进行解码,与HttpUtility.UrlEncode对应。

string encodedUrl = "https%3a%2f%2fwww.example.com%2fsearch%3fq%3dJavaScript%e7%bc%96%e7%a0%81";
string url = HttpUtility.UrlDecode(encodedUrl);
Console.WriteLine(url); // https://www.example.com/search?q=JavaScript编码

示例

在一个网页中,用户可以输入一个URL进行页面跳转。为了防止输入的URL中包含特殊字符而导致跳转错误,我们可以使用JavaScript的encodeURIComponent对URL进行编码,然后通过POST请求将编码后的URL发送到后端。

<form action="/redirect" method="POST">
  <label for="url-input">请输入跳转的URL:</label>
  <input type="text" name="url" id="url-input">
  <button type="submit">跳转</button>
</form>

<script>
  const urlInput = document.querySelector('#url-input');

  document.querySelector('form').addEventListener('submit', (event) => {
    event.preventDefault(); // 阻止表单默认提交行为
    const encodedUrl = encodeURIComponent(urlInput.value);
    fetch('/redirect', {
      method: 'POST',
      body: JSON.stringify({
        url: encodedUrl
      }),
      headers: {
        'Content-Type': 'application/json'
      }
    })
      .then(response => response.json())
      .then(data => {
        if (data.success) {
          window.location.href = data.redirectUrl;
        } else {
          alert('跳转失败');
        }
      });
  });
</script>

后端代码(使用C#)可以先获取POST请求中的编码后的URL,然后通过HttpUtility.UrlDecode解码,最后进行跳转。

public ActionResult Redirect()
{
  string encodedUrl = Request.Form["url"];
  string decodedUrl = HttpUtility.UrlDecode(encodedUrl);
  return Redirect(decodedUrl);
}

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

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

相关文章

  • Js使用WScript.Shell对象执行.bat文件和cmd命令

    JS使用WScript.shell对象可以执行bat文件和cmd命令,在实际开发过程中有很多应用场景,比如自动化脚本、批量打包、自动化测试等。 下面提供一份完整的攻略,帮助您使用JS执行bat文件和cmd命令: 1. 创建WScript.Shell对象 在开始之前,需要先创建一个 WScript.Shell对象。 示例代码: var WshShell = n…

    JavaScript 2023年5月27日
    00
  • Javascript中产生固定结果的函数优化技巧

    当我们在编写JavaScript中的函数时,我们有时候需要函数能够返回对于特定输入的相同结果。这种类型的函数被称为Pure Function。Pure Function的一个重要特性是对于相同的输入,产生相同的输出。这使得测试和调试变得更加容易,并且减少不必要的副作用。 在本篇攻略中,我们将讨论如何优化JavaScript中的Pure Function,使其…

    JavaScript 2023年5月27日
    00
  • js正则查找match()与替换replace()用法实例

    js正则查找match()与替换replace()用法实例 正则表达式是一种字符串模式匹配的工具,常用于字符串搜索和替换。在JavaScript中,正则表达式同样也是一种重要的功能。使用正则表达式可以达到快速、准确地对字符串进行搜索和替换的目的。 在JavaScript中,我们可以使用match()方法和replace()方法来进行正则表达式的搜索和替换。下…

    JavaScript 2023年6月10日
    00
  • JavaScript将XML转成JSON的方法

    将XML转换为JSON是前端开发中的一个常见任务,可以使用JavaScript实现。以下是一种将XML转换为JSON的方法,步骤如下: 获取XML数据 首先,需要从服务器或API中获取XML数据。可以使用JavaScript中的XMLHttpRequest对象来实现。其中,XMLHttpRequest.open()方法设置HTTP请求的方法和URL,XMLH…

    JavaScript 2023年5月27日
    00
  • javascript实现图片左右滚动效果【可自动滚动,有左右按钮】

    下面是详细讲解“javascript实现图片左右滚动效果【可自动滚动,有左右按钮】”的完整攻略: 1. 确定HTML结构 首先需要确定HTML结构,一般来说,我们可以使用 ul 和 li 标签来实现一个图片轮播图。如下所示: <div class="container"> <ul class="img-list…

    JavaScript 2023年6月11日
    00
  • js 数组的for循环到底应该怎么写?

    JS 数组的 for 循环可用于遍历数组中的所有元素,并对每个元素进行操作。下面是 JS 数组的 for 循环的完整攻略: 1. 标准语法 使用 for 循环,可以直接对数组进行迭代,并采取一系列操作。循环主要依赖于条件语句,本例中表示当循环变量为 len 时,循环继续执行并打印所有元素的值。 var arr = ["a", "…

    JavaScript 2023年5月27日
    00
  • $()JS小技巧

    $()JS小技巧 在前端开发中,我们经常需要对DOM元素进行操作,而jQuery库可以帮助我们更方便地实现这些操作。其中一个最常用的方法是$(),它可以获取DOM元素并对其进行操作。 基本语法 $()是jQuery的一种基本语法,它可以通过选择器来选取HTML元素,并返回一个jQuery对象。基本语法如下: $(selector).action() 其中的s…

    JavaScript 2023年5月18日
    00
  • JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】

    下面就给大家讲解一下“JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】”的完整攻略。 1. 集合的定义和常用运算 1.1 集合的定义 集合(Set)是一种专门存储不重复值的数据结构。它可以存储各种类型的原始值和对象引用。与数组不同的是,集合没有顺序概念,因此不能通过索引访问元素。集合中的数据也没有重复,每个元素的位置都是唯一的。 1.2 集…

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