Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Задает набор символов выполнения, используемый для строковых и символьных литералы. Эта директива не требуется для литералы, 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)