如何将Javascript对象转换为ArrayBuffer?

问题描述

我使用AJAX从服务器检索了一个编码字符串(使用TextEncoderUTF-8中,该字符串在发送到服务器之前已被字符串化)。我在检索时解析它并得到一个Object。我需要将此Object转换为解码后的字符串。 TextDecoder似乎具有decode方法,但是它期望ArrayBufferArrayBufferView,而不是Object。如果我按原样使用Object,该方法将给出TypeError:

var myStr = "This is a string,possibly with utf-8 or utf-16 chars.";
console.log("Original: " + myStr);

var encoded = new TextEncoder("UTF-16").encode(myStr);
console.log("Encoded: " + encoded);

var encStr = JSON.stringify(encoded);
console.log("Stringfied: " + encStr);

//---------- Send it to the server; store in db; retrieve it later ---------

var parsedobj = JSON.parse(encStr); // Returns an "Object"
console.log("Parsed: " + parsedobj);

// The following decode method expects ArrayBuffer or ArrayBufferView only
var decStr = new TextDecoder("UTF-16").decode(parsedobj); // TypeError

// Do something with the decoded string

此SO 6965107讨论了有关转换字符串/ ArrayBuffers的广泛讨论,但这些答案均不适用于我的情况。我还遇到了this文章,如果我有Object,则该文章不起作用。

Some posts建议使用“ responseType:arraybuffer”,这会导致服务器产生ArrayBuffer响应,但是在检索此编码字符串时我无法使用它,因为同一结果数据中还有许多其他项需要不同的内容类型。

在Google和SO上搜索了一天之后,我有点受阻,无法找到解决方案。我对任何允许我将“包含国际字符的字符串”保存到服务器并“按原样检索”的解决方案持开放态度,除了更改内容类型外,因为这些字符串捆绑在携带音频,视频和音频的JSON对象中,文件。任何帮助或建议都将受到高度赞赏。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)