在之前写公司的业务的时候有这样的一个需求,通过 XMLHttpRequest 拿到图片的二进制内容。然后将 ArrayBuffer 中的数据暂存在 JSON 中,所以需要涉及到 ArrayBuffer 和 String 的相互转换。
记录一下
1 | /** |
1 | /** |
但是问题并没有完全解决,原因大概是,图片二进制内容 ArrayBuffer 转换成 string 类型,通过 utf-8 编码生成的乱码,再转换回去时候,二进制数据内容和长度发生了变化。
于是,我结合另一个情景,前端图片经常使用 DataUrl 表示(DataUlr 使用的也就是 Base64 编码),所以我把图片转成成 DataUrl,保存的时候存下这个 DataUrl,使用的时候再转换成二进制内容。
于是, 设置 XMLHttpRequest.responseType = 'blob';
然后问题就变成了 Blob 与 DataUrl 的转换
1 | /** |
- 本文作者: Tsailor
- 本文链接: http://tsailor.github.io/2021/09/08/前端ArrayBuffer和String、Blob和DataUrl的相互转换/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!