javascript中的Window.atob为Base64解码器Java提供不同的解码值
我有以下base 64编码字符串: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
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);
,方法是替换代码的第一行。