我正在尝试在 Windows 机器上设置 HTTP 代理。问题是,密码中有一个特殊字符 (@),导致命令set
失败。
我尝试过转义该字符 ( \@
) 并使用十六进制值对其进行百分比编码 ( %40
),但都无济于事。
例如,使用用户名 Foo 和密码 B@r,我尝试了以下命令:
set http_proxy=http://foo:B\@[email protected]:80
set http_proxy=http://foo:B%[email protected]:80
除了更改密码之外,我怎样才能让代理使用密码?
答案1
http://foo:B@[email protected]:80
你这样写:
http://foo:B%[email protected]:80
因此@
被替换为%40
。
注意:foo = 用户名,b@r = 密码,http-gateway.domain.org = 要连接的主机代理
答案2
对于用户名或密码中的任何特殊字符,我们总是可以使用 UTF-8 编码字符串代替。例如: ! 可以替换为 %21
因此,如果密码是 abc!,命令如下:
npm 配置设置代理http://用户:abc%[电子邮件保护]:8080/
npm 配置设置 https 代理http://用户:abc%[电子邮件保护]:8080/
答案3
使用十六进制表示法中特殊字符的 %Ascii 代码表示任何特殊字符。假设我的密码是AB@12#&那么密码应该设置为
git config --global http.proxy *http://usernamne:**AB%4012%23%26**@myipadress:portnumber*
请参阅 ascii 表以了解任何数字的十六进制 ascii 码。
答案4
根据这个答案所以,您可以尝试使用 ^ 来转义 @ 符号吗?