`

encodeURIComponent

 
阅读更多

   脑袋决定嘴巴,言语的核心指向腹中的酝酿,表述当然存在复杂性,但是只要主谓宾合理就坐再配上不是太糟糕的理解能力,语义便能达到不丢包的传达。
   
   下面来自W3School的描述:
     
“encodeURIComponent() 把字符串作为 URI 组件进行编码。”(完全无缝不留痕复制粘贴)
   
   鄙人鄙陋的分析:函数名明确指出是对Uri进行编码,但是它画风一砖甩到了“字符串”上(好,我承认URI也是String,但是老子可以有很多儿子,儿子不会有很多老子,出来混说URI就URI),甩到String头上我就不说了,后面又来句像uri那样编码,这一砖拍的我一脸的茫然,让我想起了一个段子:

        师:“高分微积方程有哪方面的运用”
        甲:“老师,它有物理学方面的运用”
        师:“这位同学答的不错”
        乙:“你不是学文的吗!你怎么知道”
        甲:“这是常识”
        乙:....(一脸懵懂)


   鄙人鄙陋的再解释(如此贬低自己是谦虚的极端,这样不好,年轻气盛才是年轻人):

   encodeURIComponent()对URI进行编码,不是所有char都被编码,只是有些char会被编码成十六进制的转义序列


   不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

   其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

  
   important here :对String进行编码,该方法指定的char会被编码
  
   大家又会问为什么这样做,稍安勿躁,待我复制粘贴:



sName=encodeURIComponent(sName);
var url="reg_te2.shtml?type="+mUserType+"&id="+vID+"&name="+sName;

保证数据传输的准确性以及防止Url注入带来的跨站点攻击
如果你不这样做 如果mUserType的值被恶意修改成:3&id=12&name=123#
你的程序就会被注入了 很可能带来安全性问题
如果你调用这个方法 上述mUserType会被进行编码成另外一种Unicode编码的格式 从而可以避免这种攻击



   

分享到:
评论

相关推荐

    escape、encodeURI、encodeURIComponent 区别详解

    ### escape、encodeURI、encodeURIComponent 区别详解 在前端开发中,经常需要用到字符串编码与解码的方法来确保数据在网络传输中的正确性与安全性。本文将详细介绍 `escape()`、`encodeURI()` 和 `...

    encodeURIComponent编码后java后台的解码

    同学的毕业设计出现JavaScript用encodeURIComponentt编码后无法再后台解码的问题。 原来他是这样写的: window.self.location="searchbytext.action?searchtext="+encodeURIComponent(seartext);

    Javascript中escape(),_encodeURI()和encodeURIComponent()之精析与比较.doc

    在JavaScript中,`escape()`, `encodeURI()`, 和 `encodeURIComponent()` 是三个常见的字符串编码函数,它们各自有独特的用途和特点。理解它们的区别对于编写健壮的JavaScript代码至关重要。 首先,`escape()` 函数...

    JS中三种编码方式(escape,encodeURI,encodeURIComponent)

    本文将详细探讨三种主要的编码方法:`escape()`, `encodeURI()`, 和 `encodeURIComponent()`,并解释它们之间的区别和应用场景。 首先,`escape()` 方法并不常用于现代Web开发,但它仍然是JavaScript内置的一个函数...

    encodeURIComponent 文档

    ### encodeURIComponent与encodeURI详解 在Web开发中,处理URL参数是一项常见的任务,特别是当涉及到包含非ASCII字符(如中文)的参数时。本文将详细解释`encodeURIComponent`与`encodeURI`的区别及其应用场景,并...

    encodeURIComponent encodeURI 中文转GBK编码

    serialize , encodeURIComponent encodeURI 中文转成GBK编码 encodeURIComponent encodeURI 默认转 utf-8 ;重写方法 转成GBK

    深入解析:JavaScript中的`encodeURIComponent`与`decodeURIComponent`方法

    为了解决这些问题,JavaScript提供了两个内置函数:encodeURIComponent和decodeURIComponent。这两个函数对于编码和解码URL组件至关重要。本文将详细探讨这两个函数的工作原理、使用场景以及如何在实际开发中正确...

    url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介

    ### URL的三个JS编码函数:`escape()`, `encodeURI()`, `encodeURIComponent()` 简介 在Web开发中,经常遇到的一个问题是URL传递中文字符时出现乱码的情况。为了解决这一问题,JavaScript提供了几种不同的编码方法...

    java 中类似js encodeURIComponent 函数的实现案例

    在Java编程语言中,没有内置的方法直接等同于JavaScript中的`encodeURIComponent`函数,该函数用于编码URI(统一资源标识符)组件,确保特殊字符被适当地转换为百分比编码。然而,通过组合Java的`URLEncoder`和`...

    JS中encodeURIComponent函数用php解码的代码

    `encodeURIComponent`是JavaScript中用于对URI组件进行编码的一个函数,它可以确保特殊字符和非ASCII字符在URL中正确表示。当这些编码后的字符串需要在PHP中解码时,通常会用到`urldecode`和`iconv`这两个函数。 `...

    escape、encodeURI 和 encodeURIComponent 的区别

    在JavaScript中,`escape()`, `encodeURI()`, 和 `encodeURIComponent()` 是三个常见的字符串编码函数,它们用于处理和转换字符串中的特殊字符。虽然它们都与字符串编码有关,但各自的作用和适用场景有所不同。 ...

    在asp中使用js的encodeURIComponent方法

    在ASP(Active Server Pages)中使用JavaScript的encodeURIComponent方法涉及到服务器端的ASP和客户端的JavaScript两种技术的结合使用。这是一种常见的跨语言交互方法,可以在服务器端代码中插入客户端JavaScript代码...

    简单明了区分escape、encodeURI和encodeURIComponent

    在JavaScript中,`escape`、`encodeURI`和`encodeURIComponent`是三个用于字符串编码的方法,它们各有不同的用途和特点。理解这些方法的区别对于处理URL、查询字符串和其他特殊字符的编码至关重要。 首先,`escape`...

    谈谈encodeURI和encodeURIComponent以及escape的区别与应用

    在JavaScript中,`encodeURI()`、`encodeURIComponent()`和`escape()`是三个用于字符串编码的函数,它们的主要目的是确保特殊字符在传输过程中不会引起错误。理解它们之间的差异对于编写正确处理URL和数据的...

    js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解

    JavaScript中的字符串编码函数主要包括`escape()`、`encodeURI()`和`encodeURIComponent()`,它们的作用是对字符串进行编码处理,以便在网络中安全地传输数据。这三种函数都有对应的解码函数:`unescape()`、`...

Global site tag (gtag.js) - Google Analytics