Как кодировать строку в Unicode Powershell - PullRequest
0 голосов
/ 18 октября 2019

Мне нужно преобразовать строковые символы в Unicode.

Проще говоря, если у меня есть эта строка: "i_Id Mega (hex)", я хочу закодировать это и получить: "i_Id_x0020_Mega_x0020__x0028_hex"

Я не нахожу способ сделать это в PowerShell. Любая помощь приветствуется!

Спасибо, Тристан Себилле

Ответы [ 2 ]

2 голосов
/ 18 октября 2019

Это должно сделать это:

$inStr       = "i_Id Mega (hex)"
$outStr      = ""
$uniChars    = " ("
$removeChars = ")"

foreach( $char in [char[]]$inStr ) {

    if( $uniChars.Contains( $char ) ) {
        $outStr += '_x' + "{0:x4}" -f [char]::ConvertToUtf32([string]$char ,0) + '_'
    }
    elseif( !$removeChars.Contains( $char ) ) {
        $outStr += $char 
    }
}

$outStr
1 голос
/ 19 октября 2019

Или используйте несколько регулярных выражений -replace действий:

"i_Id Mega (hex)" -replace ' ', '_x0020_' -replace '\(', '_x0028_' -replace '\)'

Результат:

i_Id_x0020_Mega_x0020__x0028_hex
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...