我有一个Base64编码文件,我正在尝试以下解码:
[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($data))
但是它会产生以下错误:
Exception calling "FromBase64String" with "1" argument(s): "The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding
characters, or an illegal character among the padding characters.
虽然它完全是Base64。有什么想法吗?
*请注意它是Base64,但不是由PowerShell编码的。
答案 0 :(得分:3)
如果您想将Base64字符串解码为文本,则可以这样做:
$EncodedText = 'SGVsbG8gV29ybGQh'
$DecodedText = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($EncodedText))
$DecodedText
如果您需要将Base64字符串解码为二进制文件,则可以这样做:
$base64string = ''
$FileName = "file.png"
[IO.File]::WriteAllBytes($FileName, [Convert]::FromBase64String($base64string))
答案 1 :(得分:0)
某些应用程序要求 Base64 字符串以一或两个等号作为填充字符结尾。为了快速测试,您可以在变量 $data 的末尾添加一两个“=”字符,如下所示:
[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($data+"="))
然后再次尝试解码。