如何在JavaScript中编写与Convert.ToBase64String()等效的JavaScript?

Meh*_*nce 7 javascript c#

我有字节数组,我可以在c#中将此USin Convert.ToBase64String()方法转换。我在javascript中编写了等效于此方法的代码,如下所示。但是结果是不同的。

在C#中:

 byte[] data = ...
Convert.ToBase64String(data)
Run Code Online (Sandbox Code Playgroud)

在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;
    }
Run Code Online (Sandbox Code Playgroud)

如何在js中成功?

Guf*_*ffa 4

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

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

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

参见:Base64