Tengo algunas preguntas para tratar de entender las diferentes codificaciones.C/C++ preguntas de codificación
¿Cuál es la codificación predeterminada para las cadenas?
char ascii[]= "Some text"; // This is plain ASCII right?
wchar_t utf[] = L"Some Text"; // Is this UTF-16? Or ASCII stored in wchar_t's?
MessageBoxW(NULL, L"Hello", L"HI", MB_OK); // What encodings are the 2 strings in?
Y entonces, ¿cómo podría crear una cadena UTF-8? Si quería mostrar caracteres UTF-8 en un cuadro de mensajes?
Mis preguntas están dirigidas principalmente a Windows por cierto, pero si es diferente en diferentes sistemas operativos que estoy interesado en conocer.
C++ x11 agrega un prefijo 'u8' para literales de cadena UTF-8, por ejemplo:' u8 "Hello World" ', sin embargo, hasta que C++ x11 sea adoptado por los proveedores de compiladores C++, solo tendrá que codificar UTF -8 cadena de forma manual en su lugar. Por ejemplo, en tiempo de ejecución usando 'WideCharToMultiByte()' con la página de códigos 65001, o en tiempo de compilación usando un '' char [] 'literal que contiene valores de octetos UTF-8. –