【发布时间】:2022-11-22 01:51:42
【问题描述】:
我需要通过 websocket 发送变量的二进制表示,问题是变量可以是字符串,可以是整数,可以是任何东西。
function send(bar) {
var foo = new TextEncoder('utf-8').encode(bar); // Works if 'bar' is string
var foo = new Int32Array([bar]).buffer; // Works if 'bar' is integer
}
我如何将任何 JavaScript 变量转换为Uint8数组?
客观的:
send('Hello')->0x48 0x65 0x6C 0x6C 0x6F
send(123)->0x7B
注意:我无法控制服务器端
【问题讨论】:
-
使用
JSON.stringify将其转换为字符串 -
不!,JSON.stringify 用于 JSON...我正在寻找 Uint8Array。
-
我的意思是,将其放入字符串中,您已经知道如何对字符串进行编码,对吗?
-
@Dimava 这将不起作用,因为许多值可能会创建不正确的 UTF 值。
-
JSON.stringify将如何解决send(88)?
标签: javascript