Powershell base64 vs regular base64

Zer*_*erg 8 powershell base64

我使用powershell来转换字符串

$Text = 'ouser:v3$34@#85b&g%fD79a3nf'
$Bytes = [System.Text.Encoding]::Unicode.GetBytes($Text)
$EncodedText =[Convert]::ToBase64String($Bytes)
$EncodedText 
Run Code Online (Sandbox Code Playgroud)

但是,当使用https://www.base64decode.org/或某些用于base64编码的java库时,我会得到一个不同的,更短的版本.

示例字符串:

这是一个秘密,应该隐藏起来

powershell结果:

VABoAGkAcwAgAGkAcwAgAGEAIABzAGUAYwByAGUAdAAgAGEAbgBkACAAcwBoAG8AdQBsAGQAIABiAGUAIABoAGkAZABlAG4A

正常base64结果:

VGhpcyBpcyBhIHNlY3JldCBhbmQgc2hvdWxkIGJlIGhpZGVu

在使用网站时,我能够解码两个版本,但是使用我的java代码我只能解码后者.这是为什么?是否有多个版本的base64?这些差异来自哪里?

And*_*amb 25

添加来自@Raziel 的评论作为答案,以便更好地发现此问题。

[System.Text.Encoding]::Unicode]是UTF-16,后者是UTF-8。有[System.Text.Encoding]::UTF8你可以使用的。