搬砖:JS中ArrayBuffer转字符串,字符串转ArrayBuffer,字符与字节桥转换

本文介绍了如何在JavaScript中实现ArrayBuffer与字符串之间的相互转换,提供了两种实用的函数:ab2str用于从ArrayBuffer转换成字符串,str2ab用于从字符串转换成ArrayBuffer。文章强调了使用Blob和FileReader进行转换的正确方法,并指出了一些常见的错误,如使用Uint16Array视图转换可能因UTF-8编码字符字节长度不固定而失败。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://blog.youkuaiyun.com/xyzdwf/article/details/82220987

    //ArrayBuffer转字符串
    function ab2str(u,f) {
       var b = new Blob([u]);
       var r = new FileReader();
        r.readAsText(b, 'utf-8');
        r.onload = function (){if(f)f.call(null,r.result)}
    }
    //字符串转字符串ArrayBuffer
    function str2ab(s,f) {
        var b = new Blob([s],{type:'text/plain'});
        var r = new FileReader();
        r.readAsArrayBuffer(b);
        r.onload = function (){if(f)f.call(null,r.result)}
    }

记录备用,网上有用Uint16Array视图转换的并不行,因为utf-8编码字符字节编码长度是不一定是两个字节。

        //实际调用
        ab2str(arrayBuffer,function(str){
            //str为字符串
        });
        str2ab(str,function(ab){
            //ab为ArrayBuffer
        });

 
---------------------  
作者:xyzdwf  
来源:优快云  
原文:https://blog.youkuaiyun.com/xyzdwf/article/details/82220987  
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值