Java 为什么这无法解码base64字符串?

Java 为什么这无法解码base64字符串?,java,encoding,base,Java,Encoding,Base,我创建了一些应该可以工作的代码: String input = "PONT4uYmTYwiP0omcAxZG8a3vKI="; String expectedOut = "3ce353e2e6264d8c223f4a26700c591bc6b7bca2"; Base64.Decoder decoder = Base64.getDecoder(); byte[] outAsByte = decoder.decode(input); String output = new String(outAs

我创建了一些应该可以工作的代码:

String input = "PONT4uYmTYwiP0omcAxZG8a3vKI=";
String expectedOut = "3ce353e2e6264d8c223f4a26700c591bc6b7bca2";

Base64.Decoder decoder = Base64.getDecoder();
byte[] outAsByte = decoder.decode(input);
String output = new String(outAsByte, StandardCharsets.UTF_8);

System.out.println(input);
System.out.println(output);
(基于-我知道它是C#)

令人惊讶的是,这会产生以下结果:

PONT4uYmTYwiP0omcAxZG8a3vKI=
<?S??&M?"?J&pY???

你是如何得出预期结果的


使用base64和UTF-8解码您的输入会导致
您是如何得出预期结果的


使用base64和UTF-8解码您的输入会导致
您是如何得出预期结果的


使用base64和UTF-8解码您的输入会导致
您是如何得出预期结果的

使用base64和UTF-8对输入进行解码会导致从的手册页中获得
0x3c=='
0x3c='
0x3c=='
0x3c='

xxd创建给定文件或标准输入的十六进制转储

您正在对解码值进行十六进制转储

您可以使用提供的实用程序复制它

产生

3ce353e2e6264d8c223f4a26700c591bc6b7bca2
哪个和你的相匹配

                  //  3ce353e2e6264d8c223f4a26700c591bc6b7bca2
String expectedOut = "3ce353e2e6264d8c223f4a26700c591bc6b7bca2";
从的手册页

xxd创建给定文件或标准输入的十六进制转储

您正在对解码值进行十六进制转储

您可以使用提供的实用程序复制它

产生

3ce353e2e6264d8c223f4a26700c591bc6b7bca2
哪个和你的相匹配

                  //  3ce353e2e6264d8c223f4a26700c591bc6b7bca2
String expectedOut = "3ce353e2e6264d8c223f4a26700c591bc6b7bca2";
从的手册页

xxd创建给定文件或标准输入的十六进制转储

您正在对解码值进行十六进制转储

您可以使用提供的实用程序复制它

产生

3ce353e2e6264d8c223f4a26700c591bc6b7bca2
哪个和你的相匹配

                  //  3ce353e2e6264d8c223f4a26700c591bc6b7bca2
String expectedOut = "3ce353e2e6264d8c223f4a26700c591bc6b7bca2";
从的手册页

xxd创建给定文件或标准输入的十六进制转储

您正在对解码值进行十六进制转储

您可以使用提供的实用程序复制它

产生

3ce353e2e6264d8c223f4a26700c591bc6b7bca2
哪个和你的相匹配

                  //  3ce353e2e6264d8c223f4a26700c591bc6b7bca2
String expectedOut = "3ce353e2e6264d8c223f4a26700c591bc6b7bca2";

我使用了
echo-n PONT4uYmTYwiP0omcAxZG8a3vKI=| base64-d | xxd-p
,如果您没有bash,请在此处尝试:。命令似乎是魔法发生的地方,尽管我不知道它在做什么。。。我的第一个猜测是它正在进行某种文本转换,但这似乎是错误的。我使用了
echo-n PONT4uYmTYwiP0omcAxZG8a3vKI=| base64-d | xxd-p
,如果您没有bash,请在此处尝试:。命令似乎是魔法发生的地方,尽管我不知道它在做什么。。。我的第一个猜测是它正在进行某种文本转换,但这似乎是错误的。我使用了
echo-n PONT4uYmTYwiP0omcAxZG8a3vKI=| base64-d | xxd-p
,如果您没有bash,请在此处尝试:。命令似乎是魔法发生的地方,尽管我不知道它在做什么。。。我的第一个猜测是它正在进行某种文本转换,但这似乎是错误的。我使用了
echo-n PONT4uYmTYwiP0omcAxZG8a3vKI=| base64-d | xxd-p
,如果您没有bash,请在此处尝试:。命令似乎是魔法发生的地方,尽管我不知道它在做什么。。。我的第一个猜测是它正在进行某种文本转换,但这似乎是错误的。非常感谢,我误解了
xxd
所做的,完全把我弄糊涂了。非常感谢,我误解了
xxd
所做的,完全把我弄糊涂了。非常感谢,我误解了
xxd
所做的,完全让我困惑。非常感谢,我误解了
xxd
所做的事情,完全让我困惑。