Unicode 如何计算ASCII字符集以外字符的URL编码?

Unicode 如何计算ASCII字符集以外字符的URL编码?,unicode,url-encoding,Unicode,Url Encoding,我知道对于ASCII字符,URL编码只是一个百分号和对应于该字符的十六进制数。但对于超出该范围的字符,十六进制编码由两个或多个%十六进制数序列组成 例如,对于对应于十六进制值56CE的字符,根据标准.net/java API,URL编码不是%56CE,而是“%e5%9b%8e” 因此,如果我们知道ASCII字符范围之外的字符的十六进制值,URL编码是如何计算的?换句话说,e5、9b、8e是如何从56CE中产生的?我尝试转换为二进制,但确实看到了最后2个数字(%9b,%8e)的模式,但不知道%e5

我知道对于ASCII字符,URL编码只是一个百分号和对应于该字符的十六进制数。但对于超出该范围的字符,十六进制编码由两个或多个%十六进制数序列组成

例如,对于对应于十六进制值56CE的字符,根据标准.net/java API,URL编码不是%56CE,而是“%e5%9b%8e”


因此,如果我们知道ASCII字符范围之外的字符的十六进制值,URL编码是如何计算的?换句话说,e5、9b、8e是如何从56CE中产生的?我尝试转换为二进制,但确实看到了最后2个数字(%9b,%8e)的模式,但不知道%e5来自何处。

您必须先将Unicode代码点编码为字符集字节,然后才能对这些字节进行url编码。在您的示例中,
E5 9B 8E
是Unicode编码点
U+56CE
的UTF-8编码字节,然后
%E5%9B%8E
是UTF-8字节的url编码形式