如何在 HTTP 代理的用户名/密码中使用特殊字符?

pyr*_*uin 33 windows special-characters http-proxy

我正在尝试在 Windows 机器上设置 HTTP 代理。问题是,密码中有一个特殊字符 (@),导致set命令失败。

我试过转义字符 ( \@) 和使用十六进制值 ( %40)对其进行百分比编码,但无济于事。

例如,使用用户名 Foo 和密码 B@r,我尝试了以下命令:

set http_proxy=http://foo:B\@r@http-gateway.domain.org:80
set http_proxy=http://foo:B%40r@http-gateway.domain.org:80
Run Code Online (Sandbox Code Playgroud)

除了更改密码,我如何让代理使用密码?

rav*_*ekh 40

你必须百分比编码| 特殊字符进行编码。例如,而不是这样:

http://foo:B@r@http-gateway.domain.org:80
Run Code Online (Sandbox Code Playgroud)

你这样写:

http://foo:B%40r@http-gateway.domain.org:80
Run Code Online (Sandbox Code Playgroud)

所以@被替换为%40.

  • 我建议简单地使用 javascript `encodeURIComponent()` 来达到此目的。您可以轻松使用浏览器的“DeveloperTools -> Console”。 (3认同)
  • 编码确实是解决这个问题(以及许多其他问题)的方法。 (2认同)

Mik*_*ell -1

基于SO上的这个答案,您可以尝试使用 ^ 来转义 @ 符号吗?

  • 实际上这是一个基于Windows的问题...我个人了解pyropenguin。 (2认同)