interpreting non ascii codepoint
ProtoBuf 在Windows VS2019 C++平台上的使用
这两天想着了解一下protobuf,搜索了一篇博客照着弄了一下
https://blog.csdn.net/weixin_44780793/article/details/120572110
有个问题是,我对着弄后定义的.proto文件生成的时候报错了

一开始我以为是文件里有中文注释要弄成ANSI格式,发现还是不行



怎么改都不行,后边发现是用了中文状态下的;
改回去英文的;就通过了...
=============分割线===============
自己弄了个.proto,想着试试是否支持map和vector,发现map和c++的map写法一样,要用vector(数组)得用repeated +类型,这个测试文件如下
syntax = "proto3";
message ItemData {
int32 ItemID = 1;
map<int32,string> pos = 2;
int32 ItemNum = 3;
repeated int64 arr = 4;
}
测试代码:
ItemData item;
item.set_itemid(100);
item.set_itemnum(25); // 设置map
item.clear_pos();
auto pos = item.mutable_pos();
pos->insert({ 1,"first" }); // 设置数组
item.clear_arr();
item.add_arr(666);
item.add_arr(888); std::string str;
str = item.SerializeAsString();
std::cout << "str:" << str << std::endl;
std::cout << "反序列化:" << std::endl; ItemData item1;
item1.ParseFromString(str);
std::cout<<"Id:"<<item1.itemid();
std::cout << " num:" << item1.itemnum() << std::endl;; // 解析map
for (auto it : item1.pos())
{
std::cout << " key:" << it.first << " value:" << it.second << std::endl;
}
// 解析数组
for (auto it : item.arr())
{
std::cout << "v:" << it;
}
ps:发现map不是直接用的std的map,操作接口有些不一样
结果正常:

关于protobuf的简单探讨先到此为止了
interpreting non ascii codepoint的更多相关文章
- INFORMIX 时间函数大全
http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=/com.ibm.sqls.doc/ids_sqs_0187 ...
- Impala SQL 语言元素(翻译)[转载]
原 Impala SQL 语言元素(翻译) 本文来源于http://my.oschina.net/weiqingbin/blog/189413#OSC_h2_2 摘要 http://www.cloud ...
- Impala SQL 语言元素(翻译)
摘要: http://www.cloudera.com/content/cloudera-content/cloudera-docs/Impala/latest/Installing-and-Usin ...
- python2.7 处理unicode和ascii字符串混用问题
python2.7默认的编码方式为ascii码,如下可以查询: import sys sys.getdefaultencoding() 如果直接在unicode和ascii字符串之间做计算.比较.连接 ...
- CSS非ASCII字符最佳实践
问题场景 在写样式时经常需要用到非ASCII字符的属性值,如下: ? 1 2 3 4 5 6 7 8 9 10 11 .hot_list .sign_discount:before { cont ...
- SQL Server 中怎么查看一个字母的ascii编码或者Unicode编码
参考文章:微信公众号文章 在sql中怎么查看一个字符的ascii编码,so easy !! select ASCII('a') SELECT CHAR(97) charNum SELECT UNICO ...
- perl 如何匹配ASCII码以及ASCII码转换
匹配ASCII码: /[:ascii:]/ ASCII码转换为数字: ord() 数字转换为ASCII码: chr()
- 常用ASCII CHR碼對照
因為開發需求,把對照表留下來一下. Chr(0) Null Chr(29) 分组符 Chr(38) & Chr(48) 0 Chr(8) 退格 Chr(30) 記錄分離符號 Chr(39) ‘ ...
- ascii、unicode、utf、gb等编码详解
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为"字节".再后来,他们又做了一些可以处理这 ...
- ASCII码而已
题目: \u5927\u5bb6\u597d\uff0c\u6211\u662f\u0040\u65e0\u6240\u4e0d\u80fd\u7684\u9b42\u5927\u4eba\uff01 ...
随机推荐
- kail 系统更新
原文链接:https://blog.csdn.net/aiming66/article/details/123203495
- 关于vCenter6.7 导出的ovf 不能导入vCenter6.5/6.0的问题
正常从6.7导出ovf文件,包含四个文件. 编辑ovf文件,删除下面五条条目, 导入6.5时, 只用 ovf 和 vmdk 这两个文件导入 ,即可!
- C++和C中的输入输出总结、标准输入/标准输出/标准错误与重定向,>>、>、<、<<
标准输入/标准输出/标准错误与重定向 0表示标准输入.1表示标准输出.2标准错误.1和2都是默认是输出到屏幕. linux中的>>.>.<.<<:这些符号是Linu ...
- 性能测试-top-实时显示系统中各个进程的资源占用状况, 也可以查看线程
1.top命令介绍 top命令是Linux系统中常用的性能分析工具,可以实时地查看系统的运行情况,比如内存.CPU.负载以及各个进程的资源占用情况 top界面主要分为两个部分,前5行展示的是系统的整体 ...
- python 删除大于超过一定时间文件
import os from datetime import datetime, timedelta path = "." if __name__ == '__main__': f ...
- MySQL---MGR保姆版
一.环境清理: 三台机器都做: 1.修改主机名 2.修改/etc/hosts文件 3.关闭和禁用防火墙 4.关闭和禁用SELinux 5.生成密钥对 6.传输密钥对 7.验证免密登陆 yum remo ...
- 4口高速USB 2.0 HUB控制器 DPU1.1S,兼容替代FE1.1S
DPU1.1S是一款高性能.低功耗 4 口高速 USB2.0HUB 控制器,上行端口兼容高速 480MHz和全速 12MHz 两种模式,4个下行端口兼容高速480MHz.全速12MHz.低速 1.5M ...
- 如何为 Debian 11 安装图形用户界面 (GUI)
如何为 Debian 11 安装图形用户界面 (GUI) allway2 于 2021-12-26 17:30:14 发布 11767 收藏 23文章标签: debian 服务器 linux版权 华为 ...
- QTcpSocket 设置接收数据延时等待时间
/* 客户端接入槽函数 */ void TcpServer::slotNewConnect(void) {/* 获取连接的客户端句柄 这里设置刷新数据时间 1ms */ QTcpSocket *pSo ...
- 显示两行文字,超出显示省略号 css
1 width: 100px; 2 background-color: pink; //一下内容为设置文字换行 及 只显示两行,超出显示省略号 3 text-overflow: -o-ellipsis ...