给链接、查询参数或表单正文做百分号编码,或把它还原。默认 UTF-8,和浏览器的 encodeURIComponent 一致。对方如果是 GBK 或其他编码,在字符编码里改。
一段网址里,斜线有时必须留下,有时必须变成 %2F。表单里的空格写成 +,查询串里通常写成 %20。整段用错函数,是链接打开到错误页面的常见原因。
encodeURIComponent。搜索词、编号、回跳地址用这个。encodeURI。它保留 : / ? #,只处理空格和非 ASCII。你已经有完整地址时用它。application/x-www-form-urlencoded。空格变成 +。这是 POST 正文,不是链接。+ 表示空格。普通查询串里空格已经是 %20。% 后面不是两位十六进制,多半是被截断,或已经解码过一次又被当成编码串。空格在链接里是 %20,在表单里是 +。参数值里真正的加号必须写成 %2B,否则服务端会把它读成空格。& 和 = 如果出现在值里面,也要编码,不然会被当成下一个参数。
默认按 UTF-8,和 encodeURIComponent 一致:中文每个字节写成 % 加两位十六进制。“北京”不是一个转义,而是一串。老接口如果要求 GBK,把字符编码改成 GBK,同一段中文会得到另一串百分号。选 Hex 时,框里按十六进制字节做百分号编码。不要用“单个参数”去编码整段 https://,否则冒号和斜线都会被换掉。字节层面可以对照 字符串转字节。Base64 是另一套,见 Base64。
你选的是表单正文。做链接时改成“单个参数”。
被编码了两次。再解一次,到能读为止。
不能。按 & 拆开,只编码每个值,分隔符留下。“每一行单独处理”就是为了这个。