URL在线加解密

什么是URL编码

URL 编码是指将 URL 中的某些字符替换为一个或多个由百分号“ %”和两个十六进制数字组成的三元组,从而对 URL 中的某些字符进行编码。三元组的两位十六进制数字表示被替换字符的数值。
URL 编码这个术语有点不准确,因为编码过程不仅限于 URL(统一资源定位符),还可以应用于任何其他 URI(统一资源标识符),例如 URN(统一资源名称)。因此,应该优先使用百分比编码这个术语。对于我们的开发来说主要用于中文的url编码和解码。

URL 中允许使用哪些字符?

URI 中允许的字符要么是保留字符,要么是非保留字符(或百分号编码中的百分号字符)。 保留字符有时具有特殊含义,而非保留字符则没有这种含义。使用百分号编码时,原本不允许的字符将使用允许的字符表示。保留字符和非保留字符集以及某些保留字符具有特殊含义的情况在每次修订 URI 和 URI 方案规范时都会略有变化。
根据RFC 3986,URL 中的字符必须取自一组定义的非保留和保留ASCII字符。URL 中不允许使用任何其他字符。
未保留字符可以进行编码,但不应进行编码。未保留字符包括:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 - _ . ~ 
仅在某些情况下才需要对保留字符进行编码。保留字符包括:
! * ' ( ) ; : @ & = + $ , / ? % # [ ]

什么时候使用 URL 编码?

提交已输入 HTML 表单的数据时,表单字段名称和值将被编码,并使用 GET 或 POST 方法在 HTTP 请求消息中发送到服务器,或者以前通过电子邮件发送。默认使用的编码基于通用 URI 百分比编码规则的早期版本,并进行了一些修改,例如换行规范化以及将空格替换为“ +”而不是“ %20”。以这种方式编码的数据的 MIME 类型是application/x-www-form-urlencoded,它目前在 HTML 和 XForms 规范中定义(仍然非常过时)。此外,CGI 规范包含有关 Web 服务器如何解码此类型的数据并将其提供给应用程序的规则。