前端经常会遇到解码 URL 的场景,这里对不同编码做个汇总。
%xx编码
仅编码中文
1 | encodeURI('http://abcd.com?name=小明') |
编码中文和特殊字符(; / ? : @ & = + $ , #
),得到 %2F
之类的字符串
1 | encodeURIComponent('http://abcd.com?name=小明') |
分别使用 decodeURI
, decodeURIComponent
解码。 在线解码
Unicode 编码
会产生 %uxxxx
或者 \uxxxx
之类的字符串(如果是编码中文)
它的具体规则是,除了ASCII字母、数字、标点符号”@ * _ + - . /“以外,对其他所有字符进行编码。
空格会被编码成 %20
escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。
1 | escape('http://abcd.com?name=小明') |
使用 unescape
解码。
1 | unescape('\u5C0F\u660E') |
评论