8

我有字节数组,我可以在 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 中成功呢?

4

2 回答 2

4

是的,结果不一样,因为 Javascript 函数根本不做 base64 编码。

base64 编码数据每个字符包含六位信息,因此字符代码的八位分布在编码数据中的两个字符上。

要对数据进行编码,您必须将字节中的位重新组合为六个位组,然后您可以将每个组转换为 base64 字符。

请参阅:Base64

于 2013-05-15T10:17:24.250 回答
3

你可以使用这个 javascript 库

于 2013-05-15T10:10:35.927 回答