首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二进制到文本编码,非打印字符,协议缓冲区,mongodb和bson

二进制到文本编码,非打印字符,协议缓冲区,mongodb和bson
EN

Stack Overflow用户
提问于 2012-01-24 14:50:46
回答 1查看 830关注 0票数 5

我有一个候选密钥(mongodb候选密钥,__id),类似于协议缓冲区中的以下内容:

代码语言:javascript
复制
message qrs_signature
{
  required uint32    region_id = 1;
  repeated fixed32 urls = 2;
};

当然,我不能在我的bson文档中使用协议缓冲区编码的字符串(通过ParseToString(std::string)),因为它可以包含非打印字符。因此,我使用ascii85编码来编码数据(使用这个图书馆)。我有两个问题。

  1. 是b85编码bson安全。
  2. bson的二进制类型是什么?我是否可以使用mongodb调用将(二进制)字符串插入到该字段中,或者仅仅是表示需要以某种形式处理的值类型(--即不是原生mongodb实体)?

编辑

因此,append binary api的显示数据被编码为十六进制(OMG!),因此base85更节省空间(在我的例子中,每条记录有22个字节)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-24 15:48:06

  1. 安全,是的。ASCII85编码的输出也是有效的utf-8iirc.
  2. 它用于存储二进制数据块。二进制数据是官方支持的类型,您应该能够使用适当的驱动程序代码( BSONObj )将二进制值推送到BSON字段。有关详细信息,请参阅驱动程序文档或源代码。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8988849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档