路径中使用的 % 函数如何
How does % function that is used in a Path
我正在使用脚本设置 PKI,但这里有些行我不明白它是如何工作的
脚本在某些路径中使用,例如“http://pseudo.domain.org/%3%8%9.crl”。
但是脚本使用真实名称创建了这个文件,例如伪 domain.crl
%3%8%9.crl等到底是怎么变成文件名的?
提前致谢
转义序列 %XX
(其中 X
是十六进制数字)被称为 percent-encoding or URL encoding。
在 URI 中,一些字符,例如 :
或 /
或 @
,具有特殊的语法含义,因此如果作为一部分传递,则需要对它们进行转义一条路。
您可以使用 [uri]::EscapeDataString()
:
手动转义部分 URI 字符串
PS C:\> $path = "uri-stem-with-a-@-in-it"
PS C:\> [uri]::EscapeDataString($path)
uri-stem-with-a-%40-in-it
要解码编码字符串,请使用 [uri]::UnescapeDataString()
:
PS C:\> [uri]::UnescapeDataString("%41%42%43")
ABC
我正在使用脚本设置 PKI,但这里有些行我不明白它是如何工作的
脚本在某些路径中使用,例如“http://pseudo.domain.org/%3%8%9.crl”。
但是脚本使用真实名称创建了这个文件,例如伪 domain.crl
%3%8%9.crl等到底是怎么变成文件名的?
提前致谢
转义序列 %XX
(其中 X
是十六进制数字)被称为 percent-encoding or URL encoding。
在 URI 中,一些字符,例如 :
或 /
或 @
,具有特殊的语法含义,因此如果作为一部分传递,则需要对它们进行转义一条路。
您可以使用 [uri]::EscapeDataString()
:
PS C:\> $path = "uri-stem-with-a-@-in-it"
PS C:\> [uri]::EscapeDataString($path)
uri-stem-with-a-%40-in-it
要解码编码字符串,请使用 [uri]::UnescapeDataString()
:
PS C:\> [uri]::UnescapeDataString("%41%42%43")
ABC