Моя основная платформа — Windows, поэтому я использую внутреннюю кодировку UTF-16 (в основном строки BMP). Я хотел бы использовать вывод консоли для этих строк.
К сожалению, нет std::u16cout
или std::u8cout
, поэтому мне нужно использовать std::wcout
. Поэтому я должен преобразовать свои u16strings в wstrings — как лучше (и проще всего) это сделать?
В Windows я знаю, что wstring указывает на данные UTF16, поэтому я могу создать простой std::u16string_view, который использует те же данные (без преобразования). Но в Linux wstring обычно UTF32... Есть ли способ сделать это без макросов и без таких вещей, как предположение sizeof(wchar_t) == 2 => utf16?
std::cout
иstd::string
, а неstd::wcout
иstd::wstring
? То есть, не должно ли преобразование быть в UTF-8, которое повсеместно распространено на платформах, отличных от Windows? - person Nicol Bolas   schedule 20.04.2020