如何解决如何将Javascript对象转换为ArrayBuffer?
我使用AJAX从服务器检索了一个编码字符串(使用TextEncoder
到UTF-8
中,该字符串在发送到服务器之前已被字符串化)。我在检索时解析它并得到一个Object
。我需要将此Object
转换为解码后的字符串。 TextDecoder
似乎具有decode
方法,但是它期望ArrayBuffer
或ArrayBufferView
,而不是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 举报,一经查实,本站将立刻删除。