我正在努力导入一个使所有内容变为变量的csv文件,然后仅将其中一个变量转换为utf-16。我还有其他一切努力将其转换为以下格式:
需要将单词Hello World
转换为00480065006c006c006f00057006f0072006c0064
的示例。
脚本看起来与此类似。
$text = "Hello World"::UTF16
$text
这甚至可能吗?还是有一种转换方式?
您想要的输出是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