当前位置: 首页 > news >正文

nlohmann::json中有中文时调用dump转string抛出异常的问题

问题描述

Winodows下C++开发想使用一个json库,使用的nlohmann::json,但是遇到json中使用中文时,转成string,会抛出异常。

	nlohmann::json contentJson;contentJson["chinese"] ="哈哈哈";std::string test = contentJson.dump();

解决方案

先将GBK编码的中文转成utf8编码,再赋值给json就可以了。

//转码 GBK编码转成UTF8编码
static std::string GBKTOUTF8(const std::string& strGBK)
{std::string strUtf8;int len = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0);wchar_t* wszUtf8 = new wchar_t[len];memset(wszUtf8, 0, len);MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, wszUtf8, len);len = WideCharToMultiByte(CP_UTF8, 0, wszUtf8, -1, NULL, 0, NULL, NULL);char* szUtf8 = new char[len + 1];memset(szUtf8, 0, len + 1);WideCharToMultiByte(CP_UTF8, 0, wszUtf8, -1, szUtf8, len, NULL, NULL);strUtf8 = szUtf8;delete[] szUtf8;delete[] wszUtf8;return strUtf8;
}//测试
nlohmann::json contentJson;
std::string  temp = "哈哈哈";
contentJson["chinese"] = GBKTOUTF8(temp);
std::string test = contentJson.dump();

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 瑞吉外卖—读写分离
  • 机器学习:opencv图像识别--模版匹配
  • 华为OD机试真题E卷-计算网络信号(含题目描述+解题思路+代码解析)
  • 前端打包装包——设置镜像
  • 机试算法模拟题 服务中心选址
  • 利用命令模式构建高效的手游后端架构
  • Reflection反射——Class类
  • 大模型训练数据库Common Crawl
  • Python判断两张图片的相似度
  • 汽车免拆诊断案例 | 2013款捷豹XF车偶尔无法起动
  • Jupyter Notebook 修改默认路径
  • 【Linux】:信号的保存和信号处理
  • CCF推荐C类会议和期刊总结:(计算机体系结构/并行与分布计算/存储系统领域)
  • macos 系统文件操作时提示 Read-only file system 解决方法
  • 计算机网络--第六章应用层
  • canvas 五子棋游戏
  • CEF与代理
  • ECMAScript6(0):ES6简明参考手册
  • github从入门到放弃(1)
  • JavaScript类型识别
  • JavaScript实现分页效果
  • Making An Indicator With Pure CSS
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • PhantomJS 安装
  • React Native移动开发实战-3-实现页面间的数据传递
  • Redis 中的布隆过滤器
  • scala基础语法(二)
  • ucore操作系统实验笔记 - 重新理解中断
  • 小程序button引导用户授权
  • 写代码的正确姿势
  • 由插件封装引出的一丢丢思考
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 我们雇佣了一只大猴子...
  • ​Spring Boot 分片上传文件
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (0)Nginx 功能特性
  • (09)Hive——CTE 公共表达式
  • (2)MFC+openGL单文档框架glFrame
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (四)事件系统
  • (转)fock函数详解
  • (转)winform之ListView
  • (转载)Google Chrome调试JS
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • (自用)仿写程序
  • .java 9 找不到符号_java找不到符号
  • .Net 6.0 处理跨域的方式
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .net 后台导出excel ,word
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • @Controller和@RestController的区别?
  • @RunWith注解作用