Загрузка данных


#include <string>
#include <windows.h>

std::wstring Utf8ToWide(const std::string& utf8Str) {
    if (utf8Str.empty()) return L"";
    
    // 1. Узнаем размер необходимого буфера для широкой строки
    int wlen = MultiByteToWideChar(CP_UTF8, 0, utf8Str.c_str(), -1, nullptr, 0);
    
    // 2. Выделяем память и проводим конвертацию
    std::wstring wstr(wlen, 0);
    MultiByteToWideChar(CP_UTF8, 0, utf8Str.c_str(), -1, &wstr[0], wlen);
    
    // Убираем автоматически добавившийся нулевой символ в конце строки std::wstring
    if (!wstr.empty() && wstr.back() == L'\0') {
        wstr.pop_back();
    }
    
    return wstr;
}