http_proxy 环境变量中的特殊字符

JAR*_*JAR 0 linux bash proxy command-line-interface

在 http_proxy 环境变量中使用特殊字符的正确格式是什么?
或者更具体地说,在命令行上对 http 代理进行身份验证时,如何处理用户名或密码中的特殊字符。

JAR*_*JAR 5

首先,完整的格式是:

http_proxy='http://user:pass@server:port/'
Run Code Online (Sandbox Code Playgroud)

用户名和密码中的每个特殊字符不得与上述格式中使用的字符冲突,并且必须符合 URL 要求。

这是一个例子:

Domain: ADMIN DOM
User:   my@email.address  
PW:     a%b(c/x@y z
Server: proxy.server.at
Port:   8080
Run Code Online (Sandbox Code Playgroud)

变成:

'http://ADMIN%20DOM\my%40email.address:a%25b(c%2Fx%40y%20z@proxy.server.at:8080/'
Run Code Online (Sandbox Code Playgroud)

为了防止 bash 解释任何字符,请始终使用单引号。

您可以在 /etc/environment 中设置此系统范围,如下所示:

http_proxy='http://ADMIN%20DOM\my%40email.address:a%25b(c%2Fx%40y%20z@proxy.server.at:8080/'
Run Code Online (Sandbox Code Playgroud)

简单的 URL 编码/解码:
https://duckduckgo.com/?q
=url+encode+a%25b%28c%2Fx%40y+z&kl=at-de 或
https://duckduckgo.com/?q=url+逃跑