Поделиться через


execution_character_set pragma

Задает набор символов выполнения, используемый для строковых и символьных литералы. Эта директива не требуется для литералы, u8 помеченные префиксом.

Синтаксис

#pragma execution_character_set( "target" )

Параметры

target
Задает целевой набор символов выполнения. В настоящее время поддерживается "utf-8"только целевой набор выполнения.

Замечания

Эта директива компилятора устарела в Visual Studio 2015 с обновлением 2 и более поздними версиями. Рекомендуется использовать /execution-charset:utf-8 параметры или /utf-8 параметры компилятора вместе с u8 префиксом узких символов и строковых литералов, содержащих расширенные символы. Дополнительные сведения о префиксе см. в u8 разделе "Строковые и символьные литералы". Дополнительные сведения о параметрах компилятора см. в разделе /execution-charset (Установка набора символов выполнения) и /utf-8 (Установка наборов символов источника и выполнения в UTF-8).

Директива #pragma execution_character_set("utf-8") сообщает компилятору кодировать узкие символы и узкие строковые литералы в исходном коде как UTF-8 в исполняемом файле. Эта кодировка выходных данных не зависит от того, как кодируется исходный файл.

По умолчанию, когда компилятор кодирует узкие символы и узкие строки, он использует текущую кодовую страницу в качестве набора символов выполнения. Символы Юникода или DBCS за пределами диапазона текущей кодовой страницы преобразуются в символ замены по умолчанию в выходных данных. Символы Юникода и DBCS усечены на их байт с низким порядком, что почти никогда не предполагается. Чтобы указать кодировку UTF-8 для литерала в исходном файле, используйте u8 префикс. Компилятор передает эти строки в кодировке UTF-8 выходным данным без изменений. Узкие литералы символов, префиксированные u8 по байтам, или они усечены в выходных данных.

По умолчанию Visual Studio использует текущую кодовую страницу в качестве исходного набора символов, используемых для интерпретации исходного кода для выходных данных. Когда файл считывается, Visual Studio интерпретирует его в соответствии с текущей кодовой страницей, если файл не имеет набора кодовой страницы. Кроме того, если в начале файла не обнаружены знаки байтового порядка (BOM) или UTF-16. Невозможно задать UTF-8 в качестве текущей кодовой страницы в некоторых версиях Windows. Когда автоматическое обнаружение находит исходные файлы в кодировке UTF-8 без BOM в этих версиях, Visual Studio предполагает, что они кодируются на текущей кодовой странице. Символы в исходном файле, которые находятся за пределами диапазона указанной или автоматически обнаруженной кодовой страницы, могут вызвать предупреждения и ошибки компилятора.

См. также

директивы Pragma и ключевые слова __pragma и _Pragma
/execution-charset (Задать набор символов выполнения)
/utf-8 (Задайте для наборов исходных и выполняемых символов значение UTF-8)