1

Python の一部のコードを Java に変換しようとしています。そして、値が 63 より大きい python base64 エンコーダーに固執しました。

パイソン:

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 に答える