如何将 bytes 字段的 protobuf 文本编码转换为原始二进制文件?

问题描述 投票:0回答:1

基于 protobuf 文本格式

bytes
字段的 protobuf 文本表示形式是按字节转义的字符串,实际上包括原始字符(包括像
$
这样的字符)和不同的转义序列的混合就像它们可能是八进制或十六进制一样:

"\n$e6b7(\215\363\267\230\020\022\rL\032\rMSE\"\rL20\001:\017@\300\213\307\370\2662H\001P\002h\006Z\234\001foobar\n\n/u/p\310\006\232\001\005" 

我如何将其转换为标准输出上的原始二进制文件?

protocol-buffers
1个回答
0
投票

该格式使用 C 字符串转义序列。许多工具和库都可以处理这些问题,例如

echo -e
或 Python
x.decode('string-escape')
。然而,不同系统中转义序列的实现方式存在细微差别,因此需要进行测试或检查以确保处理 Protobuf 标准中的每个有效序列。

因此我们可以检查 protobuf 库本身使用了什么:

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.