如何将以下 Base64 编码二进制字符串转换为 java 中的二进制字符串。我看到人们使用以下代码在 php 中做同样的事情。如何在 Java 中实现这一点?
在 PHP 中:
$byteArr = "AAAAAEAA";
$maparray = array();
$map = "";
foreach(str_split($byteArr) as $c)
$maparray [] = sprintf("%08b", ord($c));
$map = implode("", $maparray );
Output is $map -> "000000000000000000000000000000000100000000000000";
但是当我在 java 中尝试这个时:
String input = "AAAAAEAA";
String mapArray = "";
for(int b=0;b<input.length();b++){
int asciValueOfChar =(int)toByte.charAt(b);
String binaryInt = Integer.toBinaryString(asciValueOfChar);
String paddedBinaryInt = String.format("%8s", binaryInt);
paddedBinaryInt = paddedBinaryInt.replace(' ', '0');
System.out.println("ASCII Code::"+asciValueOfChar);
System.out.println("Binary of Char::"+binaryInt);
System.out.println("Binary of Padded Char::"+binaryInt);
mapArray = mapArray + paddedBinaryInt ;
}
System.out.println("Binary Array::"+mapArray);
Output is mapArray -> "0100000101000001010000010100000101000001010001010100000101000001"
输出不同。
如何实现相同的输出?
谢谢,
最佳答案
要解码 base64,最简单的是使用 Apache commons Decoder .
import org.apache.commons.codec.binary.Base64;
byte[] decodedBytes = Base64.decodeBase64(input);
您真的需要二进制文件作为由“0”和“1”字符组成的字符串吗?
关于java - 如何在 Java 中将 Base64 编码的二进制字符串转换为二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12317518/