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 ...
随机推荐
- Markdwn学习
Markdwn学习 标题: 标题 二级标题 三级标题 几个标题有几个#(最多六级标题) 字体 Hell,World! 粗体两边加** Hello,World! 斜体两边加* Hello,World! ...
- PHP安装SOAP扩展调用webservice获取数据
报错内容: 调用方式: 错误原因: URL未加后缀?WSDL导致异常,加入后异常问题解决.
- List循环问题
list循环时的问题,报错,称找不到该字段属性,原因如下: 1.字段名与toString里不匹配: 2.首字母大写了: 原回答:https://blog.csdn.net/qq_42671193/ar ...
- Unity组件Toggle详解
1.首先先搭建UI(如下图) 2.如果实现单选的功能需要在Image上面挂载ToggleGroup脚本组件 2.2 选中三个Toggle把ToggleGroup拖到如下图位置即可 2.AllowSwi ...
- PaaS和SaaS的区别是什么?
PaaS是Platform-as-a-Service的缩写,意思是"平台即服务" SaaS是Software-as-a-Service的缩写,意思是"软件即服务" ...
- Linux 中设置静态的IP
Topic (What i going to write) Setting the static Ip address in linux Main Information Firstly use CD ...
- Python3.6多线程爬虫
Python版本 3.6 简单写一个爬虫,在写的过程熟悉Python语法,不得不说Python用起来真666; 代码功能是访问网站首页将所有a标签值作为文件夹,将当前网页所有图片下载对应文件夹中;其实 ...
- 1. mongodb基础:cursor.forEach使用
mongosh下载地址: https://downloads.mongodb.com/compass/mongodb-mongosh-shared-openssl3-1.6.0.x86_64.rpm? ...
- [Notes-DS-2]线性结构
分割线------------- 分割线----------------
- 何同学新视频火了!找到减少沉迷手机的最佳方法:附免费APP
以优质原创视频吸引百万粉丝的 Up 主"何同学"昨晚(1 月 6 日)上线了最新作品,探讨了如何有效地减少现代人使用或者说沉迷手机的时间. 在视频开头,何同学提到,整理了 5000 ...