我有:
String text = // same String (text)
byte[] byteArray = org.apache.commons.codec.binary.Base64.decodeBase64(text);
System.out.println("Length: " + byteArray.length);
Windows中的结果是31,而Linux上的结果是32.我尝试使用sun.misc.BASE64Decoder并且几乎有同样的问题......
为什么结果在不同的操作系统上有不同的长度,如何修复它以便它可以同时工作?
答案 0 :(得分:3)
可能是因为Windows上默认使用的字符编码与Linux上的字符编码不同。
您可以尝试使用简单的字节文件,而不是String作为输入。
答案 1 :(得分:1)
我猜这可能是由行分隔符引起的,它分别默认为("\r\n")
和("\n")
。你为什么不尝试没有那些(好吧,如果这是问题)。
只是我的两分钱。
答案 2 :(得分:1)
在这个特定情况下,问题是字符串文本不同。从命令行加载时,在Linux中,您必须在命令行中的文本之前和之后添加单引号,否则它会附加到Windows不会出现的字符串。