java - 为什么我对相同文本的 python 和 java base64 编码有不同的结果?
问题描述
我在 python 和 java 中有两个代码如下,但是将它们运行到不同的结果,发生了什么?
python2.7代码:</p>
#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=
解决方案
你有两个不同的字符串 -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
推荐阅读
- gradle - Intellij Idea 上的一个模块中缺少 Gradle 多模块项目 Source Sets
- javascript - 如何在javascript中的RSA-OAEP算法中使用publicExponent作为65537
- java - 两个java日期之间的区别
- mysql - 实体框架 (MySQL) - 使用两个 dbcontexts 将数据从一个数据库移动到另一个数据库
- c++ - 更好的单元测试方法,耗时太长
- sql - 使用序列插入
- javascript - 如何解析excel中的列以将其转换为JSON
- javascript - 单击外部时隐藏弹出窗口
- javascript - 获取 XML 数据的 API 返回未定义
- spring - “无法解析方法”与 mockito