bytes 二进制字节库

bytes 二进制字节库

bytes 二进制字节库

功能

bytes(value, mode) 创建不可变 Bytes 值,用于串口、TCP、UDP、WebSocket、Modbus 等二进制数据边界。

Bytes 不会隐式按 UTF-8 lossy 转字符串。json(bytes(...)) 输出带类型标记的 Base64 对象:{"type":"bytes","encoding":"base64","data":"..."}

语法

参数

参数类型必填默认值说明
valueString/Array/Bytes/Object空 Bytes字节来源。String 默认按 UTF-8 编码;Array 元素必须是 0 到 255;Bytes 直接复用;Object 可使用 hexbase64textdata 字段。
modeStringtextString 输入的解析模式。可选 textutf8hexbase64base64_url

value 对象字段

value 传入 Object 时,会按下表顺序读取第一个存在的字段:hexbase64textdata。如果这些字段都不存在,返回空 Bytes。

字段类型必填默认值说明
hexString十六进制文本。允许空白符、_-:, 作为分隔符;有效十六进制位数必须为偶数。
base64StringBase64 文本。可配合 mode 字段选择编码表。
modeString/Int标准 Base64仅在 base64 字段存在时使用。String 支持 standard_no_padno_padurl_safeurl_safe_no_pad;Int 支持 1 标准无补位、2 URL 安全、3 URL 安全无补位。
textAny按字符串形式转为 UTF-8 字节。
dataString/Array/Bytes/Empty/Null/Any通用字节来源。Bytes 直接复用;String 按 UTF-8;Array 元素必须是 0 到 255;emptynull 生成空 Bytes;其它值先转字符串再写入 UTF-8 字节。

返回值

类型说明
Bytes返回不可变字节值。

方法

方法说明
len返回字节长度。
get读取指定下标字节。
slice截取字节区间。
to_array转为整数数组。
to_hex转为十六进制文本。
to_base64转为 Base64 文本。
to_text按 UTF-8 严格转文本。
append追加数据并返回新 Bytes。

代码示例

注意事项

  • 单个 Bytes 缓冲受 BT_BYTES_LIMIT 限制,默认 16777216 字节,最大 67108864 字节。
  • to_text() 遇到非法 UTF-8 返回 null,不会做 lossy 转换。
  • Bytes 是不可变值,append()slice() 都返回新的 Bytes。