欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c++讀取json中文亂碼

林玟書2年前11瀏覽0評論

在使用C++讀取JSON格式數據時,有時會出現中文亂碼情況。這主要是因為JSON格式文件中文使用的是Unicode編碼,而C++默認使用的是ANSI編碼。

解決這個問題的方法就是將讀取的JSON字符串轉換成WideChar類型,然后再使用寬字符輸出函數輸出。示例代碼如下:

#include <iostream>
#include <string>
#include <rapidjson/document.h>
#include <rapidjson/istreamwrapper.h>
#include <codecvt>
using namespace std;
using namespace rapidjson;
int main() {
wcout.imbue(locale("chs"));
wcout << L"測試中文輸出" << endl;
// 讀取文件
wifstream ifs("test.json");
ifs.imbue(locale(locale::empty(), new codecvt_utf8));
// 將文件內容轉換成WideChar類型
wstring json_str((istreambuf_iterator(ifs)), istreambuf_iterator());
// 解析JSON
wstring_convert>conv;
wstring json_utf8 = conv.to_bytes(json_str);
Document d;
d.Parse(json_utf8.c_str());
// 輸出中文內容
wstring title = d[L"title"].GetString();
wcout << title << endl;
return 0;
}

首先,我們需要將輸出流imbue到包含中文的區域。然后打開JSON文件,并將文件內容轉換成WideChar類型。接著,使用Wstring_convert將WideChar類型轉換成UTF-8編碼,最后再使用rapidjson解析JSON,輸出中文內容。

這樣,我們就可以正確讀取JSON文件中的中文了。