前端js如何实现网络编程中的字符串与字节数组的转换

本文介绍了两种JavaScript将字符串转换为UTF-8字节数组的方法:一是自定义函数textToArrayBuffer逐字符处理,二是MDN推荐的使用TextEncoderAPI。

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

前端js如何实现网络编程中的字符串转字节数组

方法一:通过循环,结合字符编码手动转换

//方法一:字符串转字节数组(返回utf8编码的字节流)
function textToArrayBuffer(s) {
    var i = s.length;
    var n = 0;
    var ba = new Array()
    for (var j = 0; j < i;) {
        var c = s.codePointAt(j);
        console.log("codePointAt:" + c);
        var d = s.charCodeAt(j);
        console.log("charCodeAt:" + d);
        if (c < 128) {
            ba[n++] = c;
            j++;
        } else if ((c > 127) && (c < 2048)) {
            ba[n++] = (c >> 6) | 192;
            ba[n++] = (c & 63) | 128;
            j++;
        } else if ((c > 2047) && (c < 65536)) {
            ba[n++] = (c >> 12) | 224;
            ba[n++] = ((c >> 6) & 63) | 128;
            ba[n++] = (c & 63) | 128;
            j++;
        } else {
            ba[n++] = (c >> 18) | 240;
            ba[n++] = ((c >> 12) & 63) | 128;
            ba[n++] = ((c >> 6) & 63) | 128;
            ba[n++] = (c & 63) | 128;
            j += 2;
        }
    }
    return new Uint8Array(ba).buffer;
}


方法二:借助js辅助方法

//方法二:mdn推荐方法 注:TextEncoder是将字符串转为utf-8字节流(使用的是utf-8编码)
function strToArrayBuffer(s) {
    const encoder = new TextEncoder()
    const view = encoder.encode(s)
    return new Uint8Array(view).buffer;
}

总结

  1. 方法二更简洁
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

享受 生活

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值