1

我正在尝试将一些python代码转换为java。现在坚持使用值大于 63 的 python base64 编码器。

Python:

s = chr(59) + chr(234)
print(base64.b64encode(s))
 >> O+o=

爪哇

char[] chars = {59, 234};
String data = new String(chars);
byte[] encoded = Base64.encodeBase64(data.getBytes());
System.out.println(new String(encoded));
 >> O8Oq

有人知道吗?

4

2 回答 2

1

请注意,您在 Python 中的代码段已经处理字节,而 Java 版本以 Unicode 字符开头,然后通过调用将它们转换为字节data.getBytes()

您可以通过首先编码为 UTF-8 在 Python 中实现相同的结果:

>>> (unichr(59) + unichr(234)).encode('utf-8').encode('base64')
'O8Oq\n'
于 2013-02-16T18:38:26.973 回答
0

这是最终的java代码:

char[] chars = {59, 234};
String data = new String(chars);
byte[] encoded = Base64.encodeBase64(data.getBytes("ISO-8859-1"));
System.out.println(new String(encoded));
 >> O+o=

谢谢大家的帮助。:)

于 2013-02-16T18:48:04.697 回答