手动确认输入编码
默认按 Hex 解析,允许空格、冒号和 0x 前缀;输入来自 Base64 时要主动切换。短字符串可能同时符合两种格式,自动猜测容易错。
让协议字节可核对
先检查原始 Wire 字节;需要字段名时,再粘贴自包含的 .proto 并选择消息类型。
字节与 schema 仅在当前浏览器处理,不上传。
输入 Wire 消息或 Varint。
排查抓包或日志时,Protobuf 在线解码器能先把一串十六进制字节拆成字段号、Wire Type 和偏移。即使拿不到 schema,也能确认数据从哪里开始、到哪里结束。
无 schema 解码 Protobuf 只能做结构判断,不能恢复业务字段名。对 length-delimited 值,文本、嵌套消息和原始 bytes 都可能成立;看到可读字符串也别立刻认定它是 string。
把猜测和真实字节分开放。
Protobuf 在线解码器在每个字段旁保留 0 基起止偏移、Wire Type 和原始 Hex。长度不足会指出出错位置,便于回到抓包内容逐字节核对。
粘贴单文件 .proto 后,选择消息类型即可查看命名 JSON。原始 Wire 树仍在旁边,字段名和类型化值都有对应的字节证据。
默认按 Hex 解析,允许空格、冒号和 0x 前缀;输入来自 Base64 时要主动切换。短字符串可能同时符合两种格式,自动猜测容易错。
Protobuf Wire Format 只存少量线索。Wire Type 0 的数值可能是布尔值或枚举;Wire Type 2 也可能是文本、packed 数组或子消息。
自动解析等待 350 毫秒;关掉后可用 Ctrl/Cmd + Enter。输入或选项一变,复制和下载立即禁用;区间结束偏移不包含下一字节。
Protobuf 在线解码器读取 Varint、fixed64、length-delimited 和 fixed32。截断的字段与旧式 group 会明确报错,不会把剩余字节悄悄跳过。
Varint 变长整数编码最多占 10 字节。独立模式可将 Hex 转成 uint64 或 ZigZag sint64,也能把十进制数反向编码;BigInt 保住 64 位整数精度。
自包含 schema 可以解析重复字段和嵌套消息,输出带字段名的 JSON。若类型与 payload 不匹配,原始 Wire 结果仍可供排查。
Protobuf 在线解析后的 Hex 导出只规范化输入字节的写法,不根据猜测重新编码消息;与抓包逐字节比对不会被二次序列化干扰。
可以查看 Wire 结构、字段号、偏移与原始字节,但没有 .proto 就无法确定真实字段名和声明类型。
Wire Format 由字段号和 Wire Type 组成。它告诉解析器怎样跨过一个值,却不会带上完整的业务类型说明。
Varint 用每个字节的最高位表示是否继续,低七位存数据。uint64 与 ZigZag sint64 会对同一原始值给出不同解释。
常见类型有 0 Varint、1 fixed64、2 length-delimited、5 fixed32。旧式 group 使用 3 和 4,本工具明确报不支持。
因为 length-delimited 可能是字符串、bytes、packed 数组或子消息。仅凭字节猜类型会出现误判,提供 schema 才能确定。
遇到了应当支持的协议定义?