# Protobuf转换器

将数据编码/解码为Protocol Buffers (Protobuf) 二进制格式

> 标准页面: https://elysiatools.com/zh/tools/protobuf-converter

- **分类:** Format Conversion

- **关键词:** protobuf, protocol buffers, 编码, 解码, 转换, 二进制, 序列化, protobuf转换器

## 概述

Protobuf转换器是一款高效的在线工具，旨在帮助开发者快速完成 JSON 数据与 Protocol Buffers (Protobuf) 二进制格式之间的相互转换，简化序列化与反序列化流程。

## 输入项

- **输入数据** (textarea): Enter JSON data to encode or Protobuf data to decode...
- **操作** (select)
- **输出格式** (select)
- **Protobuf Schema（可选）** (textarea): Enter .proto schema or JSON descriptor (optional)...

## 适用场景

- 在开发微服务通信时，需要验证 JSON 数据是否能正确序列化为 Protobuf 二进制格式。
- 调试网络抓包数据时，需要将捕获的 Protobuf 二进制流解码为可读的 JSON 格式。
- 在不同系统间进行数据传输测试，需要快速转换数据格式以匹配接口要求。

## 工作原理

- 在输入框中粘贴您的 JSON 数据或 Protobuf 二进制内容。
- 选择“编码”或“解码”操作，并根据需要设置输出格式（Hex 或 Base64）。
- 如有必要，在 Schema 区域提供对应的 .proto 定义或 JSON 描述符以辅助解析。
- 点击转换按钮，立即获取处理后的二进制数据或结构化 JSON 结果。

## 使用案例

- 后端 API 开发中的数据序列化验证。
- 网络协议分析与二进制数据包解码。
- 跨语言服务间的数据格式兼容性测试。

## 常见问题

### Protobuf 转换器支持哪些输出格式？

目前支持将转换结果输出为十六进制 (Hexadecimal) 或 Base64 编码格式。

### 是否必须提供 Protobuf Schema？

Schema 是可选的。提供 Schema 可以帮助工具更准确地解析复杂的嵌套结构，若不提供，工具将尝试根据输入数据进行推断。

### 该工具支持哪些数据格式的转换？

该工具主要支持 JSON 与 Protobuf 二进制格式之间的双向转换。

### 转换过程是在服务器端还是客户端完成的？

为了保护您的数据隐私，转换逻辑尽可能在浏览器端完成，确保敏感数据不会上传至服务器。

### 如果解码失败，我该怎么办？

请检查输入的二进制数据是否完整，并确保提供的 Schema 与原始数据结构匹配。

## 相关工具

- [Avro转换器](https://elysiatools.com/zh/tools/avro-converter): 将数据编码/解码为Avro数据序列化格式，支持schema
- [CBOR转换器](https://elysiatools.com/zh/tools/cbor-converter): 将数据编码/解码为CBOR（简洁二进制对象表示）格式
- [Ion转换器](https://elysiatools.com/zh/tools/ion-converter): 将数据编码/解码为Ion（Amazon Ion）二进制格式
- [MessagePack转换器](https://elysiatools.com/zh/tools/msgpack-converter): 将数据编码/解码为MessagePack二进制序列化格式
- [ASCII85转换器](https://elysiatools.com/zh/tools/ascii85-converter): 将文本编码/解码为ASCII85格式（Adobe版本）
- [Base32转换器](https://elysiatools.com/zh/tools/base32-converter): 将文本编码/解码为Base32格式，支持多种变体
- [Base45转换器](https://elysiatools.com/zh/tools/base45-converter): 将文本编码/解码为Base45格式（RFC 9285）
- [Base58转换器](https://elysiatools.com/zh/tools/base58-converter): 将文本编码/解码为Base58格式，支持比特币和瑞波币变体

## 示例

- [Web Python 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-python): Web Python 图像处理示例，使用 PIL/Pillow 包括读取、保存、缩放和格式转换
- [Android Java 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-java): Android Java 图像处理示例，包括图像读取保存、缩放和格式转换
- [Android Kotlin 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-kotlin): Android Kotlin 图像处理示例，包括图像读取保存、缩放和格式转换
- [Web Rust 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-rust): Web Rust 图像处理示例，包括图像读取保存、缩放和格式转换

## 相关内容

- [二进制载荷编码、序列化与往返验证](https://elysiatools.com/zh/hubs/binary-payload-serialization): 在二进制序列化格式、文本传输编码与转义表示之间转换结构化数据，并通过往返比对确认字段、类型和字节没有被意外改变。
