Ho alcune domande nel tentativo di capire le diverse codifiche.Domande di codifica C/C++
Qual è la codifica predefinita per le stringhe?
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?
E quindi, come dovrei creare una stringa UTF-8? Se volessi visualizzare caratteri UTF-8 in un MessageBox?
Le mie domande sono principalmente rivolte a Windows, ma se è diverso su sistemi operativi diversi, sono interessato a sapere.
Il C++ x11 aggiunge un prefisso 'u8' per i valori letterali stringa UTF-8, ad esempio:' u8 "Hello World" ', tuttavia fino a quando C++ x11 viene adottato dai compilatori C++, sarà necessario codificare UTF -8 stringa manualmente invece. Ad esempio, in fase di esecuzione usando 'WideCharToMultiByte()' con codepage 65001, o in fase di compilazione usando un valore letterale 'char []' che contiene i valori dell'ottetto UTF-8. –