bytes 二进制字节库
bytes 二进制字节库
功能
bytes(value, mode) 创建不可变 Bytes 值,用于串口、TCP、UDP、WebSocket、Modbus 等二进制数据边界。
Bytes 不会隐式按 UTF-8 lossy 转字符串。json(bytes(...)) 输出带类型标记的 Base64 对象:{"type":"bytes","encoding":"base64","data":"..."}。
语法
bytes(value, mode)
参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| value | String/Array/Bytes/Object | 否 | 空 Bytes | 字节来源。String 默认按 UTF-8 编码;Array 元素必须是 0 到 255;Bytes 直接复用;Object 可使用 hex、base64、text 或 data 字段。 |
| mode | String | 否 | text | String 输入的解析模式。可选 text、utf8、hex、base64、base64_url。 |
返回值
| 类型 | 说明 |
|---|---|
| Bytes | 返回不可变字节值。 |
方法
| 方法 | 说明 |
|---|---|
| len | 返回字节长度。 |
| get | 读取指定下标字节。 |
| slice | 截取字节区间。 |
| to_array | 转为整数数组。 |
| to_hex | 转为十六进制文本。 |
| to_base64 | 转为 Base64 文本。 |
| to_text | 按 UTF-8 严格转文本。 |
| append | 追加数据并返回新 Bytes。 |
代码示例
data = bytes('4254', 'hex') // 输出:BT print data.to_text()
注意事项
- 单个 Bytes 缓冲受
BT_BYTES_LIMIT限制,默认 16777216 字节,最大 67108864 字节。 -
to_text()遇到非法 UTF-8 返回null,不会做 lossy 转换。 - Bytes 是不可变值,
append()、slice()都返回新的 Bytes。