gpt4 book ai didi

javascript - 编码然后以 Base64 解码不会输出我的输入数组缓冲区

转载 作者:行者123 更新时间:2023-12-02 18:14:17 36 4
gpt4 key购买 nike

鉴于我使用以下两个函数以 Base64 进行编码和解码。如果我编码然后解码,我只是这样做,那么我的输出和输入之间不会得到相同的值。

知道我做错了什么吗?

function _base64ToArrayBuffer(string_base64)    {
var binary_string = window.atob(string_base64);
var len = binary_string.length;
var bytes = new Uint8Array( len );
for (var i = 0; i < len; i++) {
var ascii = string_base64.charCodeAt(i);
bytes[i] = ascii;
}
return bytes.buffer;
}

function _arrayBufferToBase64( array_buffer ) {
var binary = '';
var bytes = new Uint8Array( array_buffer );
var len = bytes.byteLength;
for (var i = 0; i < len; i++) {
binary += String.fromCharCode( bytes[ i ] )
}
return window.btoa( binary );
}



var input = my_ArrayBuffer;
var raw_data_base64 = _arrayBufferToBase64(input);
var ouput = _base64ToArrayBuffer(raw_data_base64);

最佳答案

您的问题出在_base64ToArrayBuffer

for (var i = 0; i < len; i++) {
var ascii = string_base64.charCodeAt(i); // THIS LINE
bytes[i] = ascii;
}

如果您考虑一下您返回的 ArrayBuffer 实际上意味着什么(就字符代码而言),它会返回您的 Base64 字符串

看起来您确实想使用

binary_string.charCodeAt(i);

关于javascript - 编码然后以 Base64 解码不会输出我的输入数组缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19449122/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com