Powershell:特殊字符的UTF-8值

时间:2018-11-23 12:18:00

标签: powershell utf-8

我需要替换字符:

Ť

具有这样的内容:

\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中也可以向后检索此值。

有人可以给我一些提示吗?

谢谢

1 个答案:

答案 0 :(得分:1)

在使用十进制(d)时,您应该告诉脚本使用十六进制(x)表示法:

$utf = '{0:x4}' -f [int][char]$char + ""