U_
辅助 2026-09-03 14:01:38
0
正文:
在互联网通信中 ,URL(统一资源定位符)是传递参数的重要载体。但URL中若包含空格 、汉字或特殊符号(如&、?),可能导致解析错误或安全尴尬。这时 ,就需要用到urlencode(编码)和urldecode(解码)技术。
一、为什么需要URL编码?
URL标准规定 ,仅允许使用ASCII字符集中的部分字符(如字母 、数字和少数符号)。若URL中包含:
1. 非ASCII字符(如中文 、日文)
2. 保留字符(如?, =, &,用于分隔URL参数)
3. 不安全字符(如空格会被转为+或%20)这些字符必须被编码为%后跟两位十六进制数的形式 。例如:
- 空格 → %20
- 汉字“中” → %E4%B8%AD二、urlencode编码规则
保留字符 :不编码(如-, _, ., ~)。 非保留字符:转为%XX格式,XX是字符的UTF-8编码的十六进制值。 空格:通常转为+(表单提交时)或%20(URL路径中) 。 代码示例(Python):from urllib.parse import quote encoded = quote("参数=值&name=张三", safe="") print(encoded) # 输出 :%E5%8F%82%E6%95%B0%3D%E5%80%BC%26name%3D%E5%BC%A0%E4%B8%89三、urldecode解码原理
解码是编码的逆过程,将%XX恢复为原始字符,同时筹备+为空格。
代码示例(PHP):$decoded = urldecode("%E4%B8%AD%E6%96%87+Test"); echo $decoded; // 输出