execution_character_set pragma

Especifica el juego de caracteres de ejecución usado para los literales de cadena y carácter. Esta directiva no es necesaria para los literales marcados con el prefijo u8.

Sintaxis

#pragma execution_character_set( "target" )

Parámetros

target
Especifica el juego de caracteres de ejecución de destino. Actualmente, el único conjunto de ejecución de destino admitido es "utf-8".

Comentarios

Esta directiva del compilador está obsoleta en Visual Studio 2015 Update 2 y versiones posteriores. Se recomienda usar las opciones del compilador /execution-charset:utf-8 o /utf-8 junto con el prefijo u8 en literales estrechos de cadena y carácter que incluyan caracteres extendidos. Para obtener más información sobre el prefijo u8, vea Literales de cadena y carácter. Para obtener más información sobre las opciones del compilador, vea /execution-charset (Establecimiento del juego de caracteres de ejecución) y /utf-8 (Establecimiento de conjuntos de caracteres de origen y ejecución en UTF-8).

La directiva #pragma execution_character_set("utf-8") indica al compilador que codifique literales estrechos de cadena y carácter en el código fuente como UTF-8 en el archivo ejecutable. Esta codificación de salida es independiente de cómo se codifica el archivo de origen.

De manera predeterminada, cuando el compilador codifica caracteres estrechos y cadenas estrechas, usa la página de códigos actual como juego de caracteres de ejecución. Los caracteres Unicode o DBCS fuera del intervalo de la página de códigos actual se convierten al carácter de reemplazo predeterminado en la salida. Los caracteres Unicode y DBCS se truncan a su byte de orden inferior, que casi nunca es lo que se pretende. A fin de especificar la codificación UTF-8 para los literales del archivo de origen, use un prefijo u8. El compilador pasa estas cadenas con codificación UTF-8 a la salida sin cambios. Los literales de caracteres estrechos precedidos por u8 deben caber en un byte o bien se truncan en la salida.

De manera predeterminada, Visual Studio usa la página de códigos actual como juego de caracteres de origen que se usa para interpretar el código fuente de la salida. Cuando se lee un archivo, Visual Studio lo interpreta según la página de códigos actual, a menos que el archivo tenga un conjunto de páginas de códigos. O bien, salvo que se detecte una marca de orden de bytes (BOM) o caracteres UTF-16 al principio del archivo. No se puede establecer UTF-8 como página de códigos actual en algunas versiones de Windows. Cuando la detección automática encuentra archivos de código fuente con codificación UTF-8 sin un BOM en esas versiones, Visual Studio da por hecho que están codificados en la página de códigos actual. Los caracteres del archivo de origen que están fuera del intervalo de la página de códigos especificada o detectada automáticamente pueden provocar advertencias y errores del compilador.

Consulte también

directivas Pragma y las palabras clave __pragma y _Pragma
/execution-charset (Establecer el juego de caracteres de ejecución)
/utf-8 (Establecer juegos de caracteres de origen y ejecución en UTF-8)