javascript中的Window.atob为Base64解码器Java提供不同的解码值

javascript中的Window.atob为Base64解码器Java提供不同的解码值,java,base64,decode,Java,Base64,Decode,我有以下base 64编码字符串: e4EdYQYDTpC7sN0K87elHA== 在javascript中的Window.Atob中,它为我提供了{aN»Ýó·¥但是在Java中运行下面的代码时,它给了我 {�aN���� � String encodedString = "e4EdYQYDTpC7sN0K87elHA=="; Decoder decoder = Base64.getDecoder(); byte[] decodedByte = decoder.decode(encode

我有以下base 64编码字符串:

e4EdYQYDTpC7sN0K87elHA==
在javascript中的Window.Atob中,它为我提供了{aN»Ýó·¥但是在Java中运行下面的代码时,它给了我

{�aN����
�

String encodedString = "e4EdYQYDTpC7sN0K87elHA==";
Decoder decoder = Base64.getDecoder();
byte[] decodedByte = decoder.decode(encodedString);
String decodedString = new String(decodedByte);
System.out.println(decodedString);
正如您所看到的,输出是扩展的ascii,但我似乎无法在java中复制Window.atob的结果

Java的字节输出为:

123
-127
29
97
6
3
78
-112
-69
-80
-35
10
-13
-73
-91
28
而输出应为:

123 194 129 029 097 006 003 078 194 144 194 187 194 176 195 157 032 195 179 194 183 194 165 028

关于复制结果需要做什么的任何想法。

为什么使用javascript标记?javascript与Java不同或密切相关,似乎与这个问题无关。我已经删除了它,但在使用Window.atob的基础上将其包括在内,这似乎给了我所需的结果尝试此代码。
byte[]message=“e4EdYQYDTpC7sN0K87elHA=”.getBytes(StandardCharsets.UTF_8);String encodedString=Base64.getEncoder().encodeToString(消息);
替换代码的第一行。为什么使用javascript标记?javascript与Java不相同或关系密切,似乎与此问题无关。我已将其删除,但在使用Window.atob的基础上将其包括在内,因为Window.atob似乎给了我所需的结果尝试此代码。
byte[]message=“e4EdYQYDTpC7sN0K87elHA==”.getBytes(StandardCharsets.UTF_8);String encodedString=Base64.getEncoder().EncodeTString(message);
,方法是替换代码的第一行。