Powershell: UTF-8 значение специального символа - PullRequest
0 голосов
/ 23 ноября 2018

Мне нужно заменить char:

Ť

на что-то вроде этого:

\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 голосов
/ 23 ноября 2018

Десятичная дробь (d). Вы должны указать сценарию использовать шестнадцатеричную (x) запись:

$utf = '{0:x4}' -f [int][char]$char + ""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...