Почему у меня разные результаты для кодирования python и java base64 для одного и того же текста? - PullRequest
0 голосов
/ 29 февраля 2020

У меня есть два кода в python и java, как показано ниже, но запустите их с разными результатами, что случилось?

python2 .7 код:

#encoding:utf-8
import json
import base64

st_test = {"test":"测试内容"}
body = json.dumps(st_test,ensure_ascii=False)
res = base64.b64encode(body)
prin res 
#eyJ0ZXN0IjogIua1i+ivleWGheWuuSJ9

Java код:

import java.util.Base64;

body = "{\"test\":\"测试内容\"}";
String body64 = Base64.getEncoder().encodeToString(body.getBytes("UTF-8")) ;
System.out.println(body64);
//eyJ0ZXN0Ijoi5rWL6K+V5YaF5a65In0=

1 Ответ

1 голос
/ 29 февраля 2020

У вас есть две разные строки - Java не имеет пробела после :

Если я уберу пробел

body = body.replace(' ', '')

, тогда я получу тот же код


import json
import base64

st_test = {"test": "测试内容"}
body = json.dumps(st_test, ensure_ascii=False)
print body

body = body.replace(' ', '')
print body

res = base64.b64encode(body)
print res
print (res == 'eyJ0ZXN0Ijoi5rWL6K+V5YaF5a65In0=')

Результат

{"test": "测试内容"}
{"test":"测试内容"}
eyJ0ZXN0Ijoi5rWL6K+V5YaF5a65In0=
True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...