Ответ 1
Начиная с версии Visual Studio 2015 Update 2, можно установить набор символов выполнения в UTF-8, используя опцию компилятора /utf-8
, Тогда будет работать преобразование узких строковых литералов, которые не используют u8
. Это связано с тем, что эти строковые литералы затем преобразуются в UTF-8 вместо системной кодовой страницы (что является поведением Visual С++ компилятора по умолчанию).
Опция /utf-8
является синонимом для /source-charset:utf-8
и /execution-charset:utf-8
. По ссылке выше:
В тех случаях, когда файлы с UTF-8 без BOM файлов уже существуют или где происходит смена спецификации, используйте параметр /source -charset: utf-8 для правильного чтения этих файлов.
Использование/execute-charset или /utf -8 может помочь при настройке кода между Linux и Windows, поскольку Linux обычно использует BOM-less файлы UTF-8 и набор символов выполнения UTF-8.
PS: Не путайте это с настройкой набора символов на странице общей конфигурации проекта, которая устанавливает только макросы Unicode/MBCS (исторические причины).