gpt4 book ai didi

c++ - RapidJSON:用汉字写字符串

转载 作者:太空宇宙 更新时间:2023-11-04 12:47:09 25 4
gpt4 key购买 nike

我使用 C++ 生成了以下 JSON:

{
"ProfileID": "DUO1",
"ProfileName": "Sample"
}

用于生成的代码是:

string jsonData = "";
StringBuffer sb;
PrettyWriter<StringBuffer> writer(sb);

writer.StartObject();
writer.Key("ProfileID");
writer.String(strProfileId.c_str());

writer.Key("ProfileName");
writer.String(strName.c_str());

writer.EndObject();
jsonData = sb.GetString();

英文的 ProfileName 工作正常。如果个人资料名称是另一种语言(比如中文),怎么办?

我想像这样生成 JSON:

{
"ProfileID": "DUO1",
"ProfileName": "不用客气"
}

我能够在wstring中设置这个中文名字。

如何将其正确写入 JSON?

最佳答案

RapidJSON supports UTF-8 by default .我猜问题出在你的编译器而不是 RapidJson。在 Linux 上,gcc 将源代码视为 UTF-8,但在 Windows 上 MSVC 则不然。

在 VS2008 上,you can change thisTools > Options > Environment > Documents 上选中 Save documents as Unicode when data cannot be saved in codepage。在 VS2010 及更高版本上,you can specify the encoding on a per-file basis附注 #pragma execution_character_set("utf-8")

然后您可以编写诸如 writer.String(u8"不用客气"); 之类的内容。

关于c++ - RapidJSON:用汉字写字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50894832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com