LINUX.ORG.RU

История изменений

Исправление pavlick, (текущая версия) :

А что такое narrow char, если не мультибайтовая кодировка локали?

Ну кодировка локали, это кодировка локали, может быть любой, а narrow charcter string - это «текс без префикса в исходнике».

Если её не указывать, то используется локаль по умолчанию, которая «C», если её не установить (std::setlocale(LC_ALL, ""); чтобы взять системную), а в «C» й нету.

Да, наверное так и есть, но это все равно не поведение из доков.

Вообще начинаю приходить к мнениею, что есть две кодировки - ютф8 и ютф32(ну если надо в софтине посимвольно работать со строкой, конвертируем в ран тайме в него). Стандартный codcvt умеет конвертацию между ними. Если кто-то не может/не умеет ютф8 (шрифт/консоль), какая-нибудь там вин консоль не хочет подстроиться под «нормальный» текст, то это её проблемы, пусть горит вместе со всем остальным вагоном кодировок.

Исходная версия pavlick, :

А что такое narrow char, если не мультибайтовая кодировка локали?
Ну кодировка локали, это кодировка локали, может быть любой, а narrow charcter string - это «текс без префикса в исходнике».
Если её не указывать, то используется локаль по умолчанию, которая «C», если её не установить (std::setlocale(LC_ALL, ""); чтобы взять системную), а в «C» й нету.
Да, наверное так и есть, но это все равно не поведение из доков.

Вообще начинаю приходить к мнениею, что есть две кодировки - ютф8 и ютф32(ну если надо в софтине посимвольно работать со строкой, конвертируем в ран тайме в него). Стандартный codcvt умеет конвертацию между ними. Если кто-то не может/не умеет ютф8 (шрифт/консоль), какая-нибудь там вин консоль не хочет подстроиться под «нормальный» текст, то это её проблемы, пусть горит вместе со всем остальным вагоном кодировок.