首页 > 其他分享 >encodeURI和encodeURIComponent

encodeURI和encodeURIComponent

时间:2023-01-30 22:56:48浏览次数:60  
标签:编码 URL uri test encodeURIComponent encodeURI

encodeURI和encodeURIComponent的作用对象都是URL,唯一的区别就是编码的字符范围:

  • encodeURI不会对ascii字母、数字、~!@#$&*()=:/,;?+' 进行编码。
  • encodeURIComponent不会对ascii字母、数字、~!*()'进行编码。

所以encodeURIComponent比encodeURI的编码范围更大。比如说,encodeURIComponent会把 http://编码成 http%3A%2F%2F,而encodeURI不会。

一个字符串需要编码,说明其中有一些字符不适合传输。

  • 如果要将一个URL通过网络传输,则需要使用encodeURI编码。比如URI中出现了中文,中文在网络中是不能直接传输的,需要经过URI编码。

    事实上,我们在浏览器中输入一个含有中文参数的URL,在发出请求后,会自动使用encodeURI进行编码。

  • 如果要将一个URL作为一个查询参数放到另一个URL中,则需要使用encodeURIComponent编码。因为这个作为参数的URL中会包含:/?=&这些字符,如果不加处理,会解析错误。

const uri = 'https://www.test.com/person/index.asp?name=张三&age=12'
encodeURI(uri)          // "https://www.test.com/person/index.asp?name=%E5%BC%A0%E4%B8%89&age=12"
encodeURIComponent(uri) // "https%3A%2F%2Fwww.test.com%2Fperson%2Findex.asp%3Fname%3D%E5%BC%A0%E4%B8%89%26age%3D12"

标签:编码,URL,uri,test,encodeURIComponent,encodeURI
From: https://www.cnblogs.com/hdxg/p/17077467.html

相关文章

  • JavaScript encodeURI() 函数 Url编码
    定义和用法encodeURI()函数可把字符串作为URI进行编码。语法encodeURI(URIstring)参数描述URIstring必需。一个字符串,含有URI或其他要编码的文本。返回值URIstring......
  • 简简单单对比encodeURI与encodeURIComponent
    encodeURI和encodeURIComponent是两个很相近的方法,用来encodeURI。但是他们之间也存在着细微的差异,如果不能很好的理解这个差异,可能会导致一些不必要的麻烦。本文将尝试用......
  • encodeuricomponent有什么用?
    encodeuricomponent有什么用? 1、encodeuricomponent可把字符串作为URI组件进行编码。该方法不会对ASCII字母和数字进行编码,也不会对这些ASCII标点符号进行编码......