字符串中的Powershell unicode字符

字符串中的Powershell unicode字符,powershell,Powershell,我阅读了Microsoft powershell官方文档,发现了以下示例: "`u{0048}" 它应该显示一个H 但是,在我的案例中,它显示: u{0048} 我不需要其他选择,我想知道为什么它不起作用 感谢已将`u{XXXX}转义序列添加到PowerShell 6中的字符串扩展语法中,并且在任何版本的Windows PowerShell中都不会被识别为转义序列 在Windows PowerShell中,您可以在子表达式中将数值强制转换为[char]: "$(

我阅读了Microsoft powershell官方文档,发现了以下示例:

"`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在您更新所有相关详细信息之前,我不会进一步更新此答案