字符串中的Powershell unicode字符
我阅读了Microsoft powershell官方文档,发现了以下示例:字符串中的Powershell unicode字符,powershell,Powershell,我阅读了Microsoft powershell官方文档,发现了以下示例: "`u{0048}" 它应该显示一个H 但是,在我的案例中,它显示: u{0048} 我不需要其他选择,我想知道为什么它不起作用 感谢已将`u{XXXX}转义序列添加到PowerShell 6中的字符串扩展语法中,并且在任何版本的Windows PowerShell中都不会被识别为转义序列 在Windows PowerShell中,您可以在子表达式中将数值强制转换为[char]: "$(
"`u{0048}"
它应该显示一个H
但是,在我的案例中,它显示:
u{0048}
我不需要其他选择,我想知道为什么它不起作用
感谢已将
`u{XXXX}
转义序列添加到PowerShell 6中的字符串扩展语法中,并且在任何版本的Windows PowerShell中都不会被识别为转义序列
在Windows PowerShell中,您可以在子表达式中将数值强制转换为
[char]
:
"$([char]0x48)"
或者使用-as
运算符转换为[char]
:
0x48 -as [char]
# or
0x48 -as 'char'
如果您试图在源代码中生成[char]
值H
而不使用H
、H
、[
或]
,PowerShell中有很多机会,对于每个对象的别名和通过通配符进行的成员调用尤其方便:
# grab the `h` in `$env:path`
(dir env:pat?).Name.GetEnumerator()|select -Last 1
# reflect against another existing [char] to get the type
$g = 'g'|% ToC?ar ($null)
0x48 -as $g.GetType()
# generate char range between G and I, filter out G and I (pwsh >6.1 only)
'G'..'I'|?{$_-notin'G','I'}
我正在处理一个CTF挑战,不允许我键入[char。有没有办法不使用括号来执行此操作?谢谢..@Bob5421使用目标类型名作为字符串执行未经检查的强制转换:0x48-因为“char”
h char也被禁止:)那么,您必须找到一种方法来获取对[char]的一些引用
键入或字符串char
:)@Bob5421在您更新所有相关详细信息之前,我不会进一步更新此答案