原文: http://javascript.ruanyifeng.com/stdlib/arraybuffer.html#toc11
// ArrayBuffer 转为字符串,参数为 ArrayBuffer 对象 function ab2str(buf) { return String.fromCharCode.apply(null, new Uint16Array(buf)); }
// 字符串转为 ArrayBuffer 对象,参数为字符串 function str2ab(str) { var buf = new ArrayBuffer(str.length * 2); // 每个字符占用 2 个字节 var bufView = new Uint16Array(buf); for (var i = 0, strLen = str.length; i < strLen; i++) { bufView[i] = str.charCodeAt(i); } return buf; }
上面 var buf = new ArrayBuffer(str.length * 2); // 每个字符占用 2 个字节 这一句怎么理解,如果是汉字,不是有 3 个字节么?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.