本工具提供URL在线编码解码。
编码 解码
{{errorMsg}}

url编码解码

URL编码是一种技术,它用于将文本信息转换成可以安全地插入到URL中的形式。在互联网上传输时,URL仅限于使用ASCII字符集中的字符,这包括英文字母、数字和一些特殊符号。由于这些字符可能被浏览器或其他应用处理,因此它们必须是安全的,这意味着它们不应该以特定的本地化字符(如中文)的形式出现。

URL编码的原则是将非ASCII字符替换为对应的ASCII字符加上百分比符号(%),并将其编码成ASCII字符。

在JavaScript中,可以通过`encodeURIComponent`函数来编码URL中的参数或查询部分。而在服务端,可以使用类似`urlencode`的函数来进行编码。需要注意的是,不同浏览器的编码方式可能会有所不同,因此在编码时应避免依赖浏览器的自动编码功能,以免在不同浏览器之间产生差异。

总结一下,URL编码的主要步骤如下

  1. 将所有非ASCII字符转换为对应的ASCII字符加百分号(%)。
  2. 对转换后的字符进行ASCII编码。
  3. 使用编码后的字符串作为URL的一部分。

在实际操作中,应确保编码的一致性,避免使用多种编码方式,以防止潜在的数据传输问题。

encodeURI 和 encodeURIComponent 区别

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

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

encodeURIComponent不会对ascii字母、数字、~!*()'进行编码。

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

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

const uri = 'https://www.google.com?param1=~!@#$*()=:/,;?+&param2=12'
encodeURI(uri)          // https://www.google.com?param1=~!@#$*()=:/,;?+&param2=12
encodeURIComponent(uri) // https%3A%2F%2Fwww.google.com%3Fparam1%3D~!%40%23%24*()%3D%3A%2F%2C%3B%3F%2B%26param2%3D12