Python Base64编码与Java Base64编码

Python Base64编码与Java Base64编码,java,python,base64,Java,Python,Base64,以下是生成base64编码字符串的python代码: base64str = base64.encodestring('%s:' % getpass.getuser()) 我想要使用Java的相同base64str。以下是我的Java代码片段: String user = System.getProperty("user.name"); byte[] encoded_str = Base64.encodeBase64(user.getBytes()); String encoded_strin

以下是生成base64编码字符串的python代码:

base64str = base64.encodestring('%s:' % getpass.getuser())
我想要使用Java的相同base64str。以下是我的Java代码片段:

String user = System.getProperty("user.name");
byte[] encoded_str = Base64.encodeBase64(user.getBytes());
String encoded_string = new String(encoded_str).trim();
不知何故,python编码的字符串与Java不同。我正在使用“import org.apache.commons.codec.binary.Base64;”库


有什么想法吗?

在调用Base64之前,python代码会在输入字符串中附加一个冒号

>>> print '%s:' % 'test'
test:
当我将冒号添加到java代码中时,我能够在测试中得到相同的结果(python和java)

在Java中,不保证使用的字符集。请改用,以始终确保获得所需的编码

user.getBytes("UTF-8")

如何寻求帮助:不要说“他们是不同的”,展示两种不同的价值观。这里有一些线索……作为旁注,不要试图用尽可能多的标签来标记你的问题。HTTP或Apache方面的专家将无法在这里帮助您,因此没有理由使用这些标记。您只需要java、python和base64。因此,整个问题都是一个简单的打字错误。@abarnert它比普通的打字错误要微妙一些(因为它是一个字符串格式问题),但您可能肯定会有这种看法。谢谢Elliott!Python代码所有者是其他人,在“%s”之后包含“:”没有任何意义。所以这不是打字错误的问题,而是糟糕的代码实践。
user.getBytes("UTF-8")