visual ultimate studio professional portable mega gratis full español descargar visual-studio-2010

visual-studio-2010 - ultimate - visual studio 2012



Acerca de la opción "Conjunto de caracteres" en visual studio 2010 (2)

Mi pregunta sobre la opción "Conjunto de caracteres" en visual studio 2010.

Conjunto de caracteres
- No establecido
- Usar el conjunto de caracteres Unicode
- Usar conjunto de caracteres de múltiples bytes

Quiero saber cuál es la diferencia entre tres opciones en "Conjunto de caracteres".
Y también si elijo algo de ellos, afectará el soporte para idiomas distintos del inglés. (como los lenguajes RTL).


Hans ya respondió la pregunta, pero encontré que estas configuraciones tienen nombres curiosos. (¿Qué es exactamente lo que no se establece, y por qué las otras dos opciones suenan de manera similar?) Con respecto a eso:

  • "Unicode" aquí es Microsoft-speak para codificación UCS-2 en particular. Este es el recomendado y no dependiente de la página de códigos descrito por Hans. Hay un indicador C ++ #define correspondiente llamado _UNICODE.
  • "Juego de caracteres multibyte" (también conocido como MBCS) aquí la frase oficial de Microsoft para describir su antiguo esquema internacional de codificación de texto. Como Hans describió, hay diferentes páginas de códigos MBCS que describen diferentes idiomas. Las codificaciones son "multi-byte" en que algunos o todos los caracteres pueden estar representados por múltiples bytes. (Algunas páginas de códigos utilizan una codificación de longitud variable similar a UTF-8.) La página de códigos típica seguirá representando todos los caracteres ASCII como de un byte cada uno. Hay un indicador C ++ #define correspondiente llamado _MBCS
  • "No establecido" aparentemente se refiere a compilar con #UNICODE y _MBCS siendo #definido. En este caso, Windows funciona con una codificación estricta de un byte por carácter. (Una vez más, hay varias páginas de códigos diferentes disponibles en este caso).

La diferencia entre MBCS y UTF-8 en Windows aborda estos problemas con mucho más detalle.


Es una configuración de compatibilidad, destinada a código heredado que se escribió para versiones anteriores de Windows que no estaban habilitadas para Unicode. Versiones en la familia de Windows 9x, Windows ME fue el último y ampliamente ignorado. Con "No establecido" o "Usar conjunto de caracteres multibyte" seleccionado, todas las funciones de la API de Windows que toman una cadena como argumento se redefinen como una pequeña función auxiliar de compatibilidad que traduce cadenas char* cadenas wchar_t* , el tipo de cadena nativa de la API .

Dicho código depende críticamente de la configuración predeterminada de la página de códigos del sistema. La página de códigos asigna caracteres de 8 bits a Unicode, que selecciona el glifo de la fuente. Su programa solo producirá el texto correcto cuando la máquina que ejecuta su código tenga la página de códigos correcta. Los caracteres cuyo valor> = 128 se mostrarán incorrectos si la página de códigos no coincide.

Seleccione siempre "Usar conjunto de caracteres Unicode" para el código moderno. Especialmente cuando desea admitir idiomas con un diseño de derecha a izquierda y no tiene una página de códigos árabe o hebreo seleccionada en su máquina de desarrollo. Use std::wstring o wchar_t[] en su código. Obtener el diseño RTL real requiere encender el WS_EX_RTLREADING estilo WS_EX_RTLREADING en la llamada CreateWindowEx() .