我需要替换字符:
Ť
具有这样的内容:
\u0164
我有以下简单的尝试
function ReplaceNonISOChar($val) {
$regex = [regex] $('[^\u0000-\u00ff]')
$res = ""
foreach ($char in [char[]]$val) {
$utf = '{0:d4}' -f [int][char]$char + ""
$res += $char -replace $regex, "\u$utf"
}
return $res
}
$result = ReplaceNonISOChar -val 'Ť'
Write-Host $result
但是它会返回整数值(不是unicode)。如果正则表达式可以找到模式并找到此字符,则应该在Powershell中也可以向后检索此值。
有人可以给我一些提示吗?
谢谢
答案 0 :(得分:1)
在使用十进制(d
)时,您应该告诉脚本使用十六进制(x
)表示法:
$utf = '{0:x4}' -f [int][char]$char + ""