base64编码,nodejs c++ python的结果不同

base64 encode, nodejs c++ python's result is diffrent

nodejs:

var test = 'VdEU+Q2J5qfwsn9xshAcEImDSnxTR8RkRLlLmyNaeos=';

var result = new Buffer(test, 'base64').toString()
//var buf = Buffer.from(test, 'base64');
//var result = new Buffer(test, 'base64').toString("utf8");
var fs = require('fs');

fs.writeFile("test.txt",result,function(e){//会先清空原先的内容
   if(e) throw e;
})

python:

import base64

result = base64.b64decode('VdEU+Q2J5qfwsn9xshAcEImDSnxTR8RkRLlLmyNaeos=')
file_object = open('thefile.txt', 'w')
file_object.write(result)
file_object.close( )

c++:(我用的是libcef的基础库的base64):

const std::string kText = "VdEU+Q2J5qfwsn9xshAcEImDSnxTR8RkRLlLmyNaeos=";

std::string encoded;
base::Base64Decode(kText, &encoded);

FILE *pFile = fopen("1.txt", "wb+");
fwrite(encoded.c_str(), encoded.length(), 1, pFile);
fclose(pFile);

结果是pythonc++一样,nodejs不一样

您只需不要调用 toString():

var result = new Buffer(test, 'base64');

然后节点代码和其他代码一样。