Powershell конвертирует переменную в utf-16 - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь импортировать CSV-файл, превращая все содержимое в переменную, а затем превращаю только одну из переменных в utf-16. У меня есть все остальное, изо всех сил пытается преобразовать его в следующем формате:

Пример, необходимый для преобразования слова Hello World в 00480065006c006c006f00057006f0072006c0064.

Сценарий будет выглядеть примерно так.

$text = "Hello World"::UTF16

$text

Возможно ли это вообще? Или есть способ его конвертировать?

1 Ответ

4 голосов
/ 04 ноября 2019

Желаемый вывод - это шестнадцатеричное представление кодировки UTF-16 Big Endian, известное как BigEndianUnicode .

. Вы можете создать вспомогательную функцию, которая преобразует строку в это:

function ConvertTo-Utf16BE {
    [CmdletBinding()]
    Param (
        [Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $true)]
        [string]$String
    )
    $enc = [system.Text.Encoding]::BigEndianUnicode
    ($enc.GetBytes($string) | ForEach-Object {'{0:X2}' -f $_ }) -join ''
}

'Hello World' | ConvertTo-Utf16BE

Выход:

00480065006C006C006F00200057006F0072006C0064

...