Powershell格式转换字符串到base64和返回并写入文件



我写了这个函数,它将编码/解码Base64格式的字符串。

我知道我所要求的最终目标可能没有意义,但这是我必须做的。

我有一个snp.txt文件,内容为start notepad

我需要文件中的字符串转换为Base64,它应该是这样的:

cwB0AGEAcgB0ACAAbgBvAHQAZQBwAGEAZAA=

然后立即转过身,解码成它原来的样子:

start notepad

然而,当我使用下面的例子这样做时,当它被解码回来时,它返回:

s t a r t n o t e p a d

我不确定为什么文本空间的

function B64 {
[CmdletBinding(DefaultParameterSetName="encString")]
param(
[Parameter(Position=0, ParameterSetName="encString")]
[Alias("es")]
[string]$encString,
[Parameter(Position=0, ParameterSetName="decString")]
[Alias("ds")]
[string]$decString
)
if ($psCmdlet.ParameterSetName -eq "encString") {
$encoded = [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($encString))
return  $encoded
}
elseif ($psCmdlet.ParameterSetName -eq "decString") {       
$decoded = [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($decString))
return $decoded
}
}

这是我调用函数的地方,首先编码字符串,然后再解码它返回:

s t a r t n o t e p a d

$filePath = "C:UsersUserDesktopsnp.txt"
$encData = Get-Content $filePath
$enc = B64 -encString $fp;$enc | Out-File -FilePath $fp
Sleep 1
$dec = B64 -ds $encData;$dec | Out-File -FilePath $fp

发生这种情况是因为您使用不同的编码来编码和解码字符串。两者都是ascii或uncode。最好使用UTF8。文件的编码也应该与函数中使用的编码相匹配。- - - - - -圣地亚哥Squarzon

相关内容

  • 没有找到相关文章

最新更新