URL Encoding / Percent Encoding
快速尝试:
hello, world
αβγδ
道可道非常道
𠮷
🍉🍇🍑🍓🥝

URL 编码

URL 编码 (URL Encoding),又称作 Percent Encoding,编码由 % 与两位十六进制组成,是用于 URL 中的编码机制。见百分号编码

未保留字符

以下字符为未保留字符:

'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.~'

建议所有的 URI 必须对未保留字符不加以百分号编码,其它字符建议先转换为 UTF-8 再逐字节使用百分号编码。

转化过程

山月

  1. Unicode To UTF-8 中,可知 山月 的 UTF-8 编码为 E5 B1 B1 E6 9C 88
  2. 对其编码后的 UTF-8,分别添加百分号 %E5%B1%B1%E6%9C%88

API

可注意各语言 API 对于保留字符 ! ( 等的处理

Javascript

// => '%E5%B1%B1%E6%9C%88'
encodeURIComponent('山月')

// => '山月'
decodeURIComponent('%E5%B1%B1%E6%9C%88')

// => '(!'
encodeURIComponent('(!')

Python

from urllib.parse import quote, unquote

# => '%E5%B1%B1%E6%9C%88'
quote('山月')

# => '山月'
unquote('%E5%B1%B1%E6%9C%88')

# => '%3F%21'
quote('?!')