P
@pc_shabash
2 posts

Печальная судьба спецификаторов формата функции printf для символов Юникода в Visual C++

Поддержка Юникода в Windows появилась раньше, чем в большинстве остальных операционных систем. Из-за этого многие проблемы, связанные с представлением символов, в Windows решались не так, как в других системах, разработчики которых отложили внедрение нового стандарта до лучших времён. Самый показательный пример: в Windows для представления символов Юникода используется кодировка UCS-2. Она была рекомендована Консорциумом Юникода, поскольку версия 1.0 поддерживала только 65 536 символов. Пять лет спустя Консорциум передумал, но к тому времени менять что-то в Windows было уже поздно, так как на рынок уже были выпущены системы Win32s, Windows NT 3.1, Windows NT 3.5, Windows NT 3.51 и Windows 95 — все они использовали кодировку UCS-2.

Что такое __wchar_t и почему я получаю ошибки, связанные с этим?

Компилятор Microsoft Visual C++ имеет параметр с названием /Zc:wchar_t, который позволяет управлять значением wchar_t.