Sto mirando a creare un std::vector<std::string>
con nomi Farsi. Ma appena lo compilo, ottengo questo errore:
Questo sembra essere un problema unicode. Qualche suggerimento su come risolvere questo problema?
risposte:
2 per risposta № 1Compilatore di Visual C ++ di Microsoft supporta i file di codice sorgente Unicode. Specificamente accetta utf-8 (segno di ordine byte richiesto) o UTF-16:
File di codice sorgente
I caratteri Unicode ora sono supportati in identificatori, macro, stringhe e caratteri letterali e nei commenti. Ora sono supportati anche i nomi dei personaggi universali.
Unicode può essere inserito in un file di codice sorgente nelle seguenti codifiche:
Little endian UTF-16 con o senza il byte order mark (BOM)
Big endian UTF-16 con o senza distinta base
utf-8 con BOM
Si noti in particolare che per utf-8, l'ordine dei byteil segno è richiesto. La finestra di dialogo nella tua schermata è l'editor di Visual Studio che rileva che hai inserito caratteri non ASCII e ti chiede se vuoi convertire il file del codice sorgente in utf-8 o UTF-16 (non so quale sia l'impostazione predefinita ma io " d indovina utf-8). Se fai clic su Sì, salverà il file con un segno di ordinamento byte utf-8 (BOM) e tutto andrà bene.