Я использую Visual Studio
и C++
на Windows
для работы с маленькими заглавными буквами, такими как ʜᴇʟʟᴏ ꜱᴛᴀᴄᴋᴏᴠᴇʀꜰʟᴏᴡ
, используя, например, этот веб-сайт. Всякий раз, когда я читаю этот текст из файла или помещаю этот текст непосредственно в мой исходный код, используя std::string
, визуализатор текста в Visual Studio
показывает его в неправильной кодировке, предположительно, визуализатор использует Windows (ANSI)
. Как я могу заставить Visual Studio
позволить мне правильно работать со строками UTF-8
?
std::string message_or_file_path = "...";
auto message = message_or_file_path;
// If the file path is valid, read from that file
if (GetFileAttributes(message_or_file_path.c_str()) != INVALID_FILE_ATTRIBUTES
&& GetLastError() != ERROR_FILE_NOT_FOUND)
{
std::ifstream file_stream(message_or_file_path);
std::string text_file_contents((std::istreambuf_iterator<char>(file_stream)),
std::istreambuf_iterator<char>());
message = text_file_contents; // Displayed in wrong encoding
message = "ʜᴇʟʟᴏ ꜱᴛᴀᴄᴋᴏᴠᴇʀꜰʟᴏᴡ"; // Displayed in wrong encoding
std::wstring wide_message = L"ʜᴇʟʟᴏ ꜱᴛᴀᴄᴋᴏᴠᴇʀꜰʟᴏᴡ"; // Displayed in correct encoding
}
Я попробовал дополнительный параметр командной строки /utf-8
для компиляции и установки языкового стандарта:
std::locale::global(std::locale(""));
std::cout.imbue(std::locale());
Ни один из них не исправил проблему кодировки.