execution_character_set pragma

Especifica o conjunto de caracteres de execução usado para literais de cadeia de caracteres e caracteres. Esta diretiva não é necessária para literais marcados com o prefixo u8.

Sintaxe

#pragma execution_character_set( "target" )

Parâmetros

target
Especifica o conjunto de caracteres de execução de destino. Atualmente, o único conjunto de execução de destino suportado é "utf-8".

Comentários

Esta diretiva de compilador está obsoleta no Visual Studio 2015 Update 2 e versões posteriores. Recomendamos que você use as opções do compilador /execution-charset:utf-8 ou /utf-8 juntamente com o prefixo u8 em literais de caracteres estreitos e cadeias de caracteres que contenham caracteres estendidos. Para obter mais informações sobre o prefixo u8, consulte Literais de cadeia de caracteres e caracteres. Para obter mais informações sobre as opções do compilador, consulte /execution-charset (Definir conjunto de caracteres de execução) e /utf-8 (Definir conjuntos de caracteres de origem e execução como UTF-8).

A diretiva #pragma execution_character_set("utf-8") diz ao compilador para codificar literais de caracteres estreitos e cadeias de caracteres estreitas em seu código-fonte como UTF-8 no executável. Essa codificação de saída é independente de como o arquivo de origem é codificado.

Por padrão, quando o compilador codifica caracteres estreitos e cadeias de caracteres estreitas, ele usa a página de código atual como o conjunto de caracteres de execução. Caracteres Unicode ou DBCS fora do intervalo da página de código atual são convertidos para o caractere de substituição padrão na saída. Os caracteres Unicode e DBCS são truncados para seu byte de ordem baixa, que quase nunca é o que você pretende. Para especificar a codificação UTF-8 para literais no arquivo de origem, use um prefixo u8. O compilador passa essas cadeias de caracteres codificadas UTF-8 para a saída inalterada. Literais de caracteres estreitos prefixados por u8 devem caber em um byte ou são truncados na saída.

Por padrão, o Visual Studio usa a página de código atual como o conjunto de caracteres de origem usado para interpretar o código-fonte para saída. Quando um arquivo é lido, o Visual Studio o interpreta de acordo com a página de código atual, a menos que o arquivo tenha um conjunto de páginas de código. Ou, a menos que uma marca de ordem de bytes (BOM) ou caracteres UTF-16 sejam detetados no início do arquivo. Não é possível definir UTF-8 como a página de código atual em algumas versões do Windows. Quando a deteção automática encontra arquivos de origem codificados UTF-8 sem uma lista técnica nessas versões, o Visual Studio assume que eles estão codificados na página de código atual. Caracteres no arquivo de origem que estão fora do intervalo da página de código especificada ou detetada automaticamente podem causar avisos e erros do compilador.

Ver também

diretivas Pragma e as palavras-chave __pragma e _Pragma
/execution-charset (Definir conjunto de caracteres de execução)
/utf-8 (Definir conjuntos de caracteres de origem e execução como UTF-8)