我有字节数组,我可以用c#中的Convert.ToBase64String()方法转换它。 我在javascript中编写了相当于此方法的内容,如下所示。但结果却不同。
在c#中:
byte[] data = ...
Convert.ToBase64String(data)
在js
function GetStringFromByteArray(array) {
var result = "";
for (var i = 0; i < array.length; i++) {
for (var j = 0; j < array[i].length; j++)
result += String.fromCharCode(array[i][j]);
}
return result;
}
我怎样才能在js中成功?
答案 0 :(得分:4)
答案 1 :(得分:2)
是的,结果是不同的,因为Javascript函数根本不执行base64编码。
base64编码数据每个字符包含6位信息,因此字符代码的8位分布在编码数据中的两个字符上。
要对数据进行编码,您必须将字节中的位重新组合为六个位组,然后您可以将每个组转换为base64字符。
请参阅:Base64