С++ не читается русский текст
std::ifstream in(R"(C:\Users\ArrayOfByte\Desktop\1.json)", std::ios::binary);
if (!in.is_open()) {
std::cerr << "Failed to open JSON file!" << std::endl;
}
std::string content((std::istreambuf_iterator<char>(in)), std::istreambuf_iterator<char>());
in.close();
try {
json j = json::parse(content);
Dialogs = j.at("Dialog").get<std::vector<Dialog>>();
}
catch (const nlohmann::json::parse_error& e) {
std::cerr << "JSON parse error: " << e.what() << std::endl;
}
Вот код который имеется
{
"Dialog": [
{
"id": "11d",
"dialogOwner": "MC",
"text": "Hello World!",
"image": "C:\\Users\\ArrayOfByte\\Downloads\\1.jpg",
"usingButton": true,
"choices": [
{ "TextButton": "Hello", "GoTo": "12d" },
{ "TextButton": "How are you?", "GoTo": "13d" }
]
},
{
"id": "13d",
"dialogOwner": "MC",
"text": "Привет Мир!",
"image": "C:\\Users\\ArrayOfByte\\Downloads\\1.jpg",
"usingButton": false,
"choices": [
{ "TextButton": "Hello world", "GoTo": "14d" }
]
}
]
}
А вот файл чтения
Моя проблема заключается в том что код не может прочитать русские символы при том что json - UTF8, файл чтения - UTF8 При чтении content имеет вместо русской символики - беспорядок
Если json - UTF8, файл чтения - CP1251 То content имеет русские символы но json не может обрабатывать формат
Беря факт того что переобразования из cp1251 в utf8 не работает - такие же коверканные символы ( string utf = cp2utf(content) )