Powershell将变量转换为utf-16

问题描述 投票:0回答:1

我正在努力导入一个使所有内容变为变量的csv文件,然后仅将其中一个变量转换为utf-16。我还有其他一切努力将其转换为以下格式:

需要将单词Hello World转换为00480065006c006c006f00057006f0072006c0064的示例。

脚本看起来与此类似。

$text = "Hello World"::UTF16

$text

这甚至可能吗?还是有一种转换方式?

powershell variables utf-16
1个回答
4
投票

您想要的输出是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

© www.soinside.com 2019 - 2024. All rights reserved.