Поддержка Юникода в компиляторе и компоновщике
В данном разделе рассматривается поддержка Юникода в инструментах построения Visual C++.
Имена файлов
Имена файлов, указываемые в командной строке и директивах компилятора (например, #include), теперь могут содержать символы Юникода. В предыдущих версиях Visual C++ поддерживались имена файлов только в формате ANSI. В именах выходных файлов следует избегать символов, не входящих в набор ASCII, чтобы обеспечить возможность запуска исполняемых файлов на локализованных версиях ОС Windows 98 и Windows Me.Файлы исходного кода
Символы Юникода теперь поддерживаются в идентификаторах, макросах, строковых и символьных литералах, а также в комментариях. Также поддерживаются универсальные имена.Символы Юникода могут вводиться в файлы исходного кода в следующих кодировках.
UTF-16 с прямым порядком байтов, с отметкой порядка байтов или без нее
UTF-16 с обратным порядком байтов, с отметкой порядка байтов или без нее
UTF-8 с отметкой порядка байтов
Output
В процессе компиляции компилятор выводит на консоль диагностические сообщения в кодировке UTF-16. Символы, которые могут отображаться на консоли, зависят от свойств окна консоли. Выходные данные компилятора, перенаправляемые в файл, имеют кодировку текущей кодовой страницы ANSI консоли.DEF-файлы и файлы отклика компоновщика
Файлы отклика и DEF-файлы могут иметь либо кодировку UTF-16 с отметкой порядка байтов, либо кодировку ANSI. Ранее поддерживалась только кодировка ANSI.Файлы дампа ASM и COD
Файлы дампа COD и ASM по умолчанию имеют кодировку ANSI в целях совместимости с MASM. Для вывода в кодировке UTF-8 используйте параметр /FAu. Обратите внимание, что при указании параметра /FAs смешанный источник будет печататься напрямую и выводиться в искаженном виде. Например, если исходный код имеет кодировку UTF-8, а параметр /FAsu не указан.
Имена файлов в Юникоде можно включить в среде разработки (Открытие свойств страниц проекта), выбрав соответствующий инструмент и затем выбрав свойство Использовать Юникод файлы ответа, которое включено по умолчанию. Одной из причин, по которой может понадобиться изменить данную настройку по умолчанию, является необходимость в настройке среды разработки на использование компилятора, не поддерживающего формат Юникода.