Ich möchte eine erstellen std::vector<std::string>
mit Farsi-Namen. Sobald ich das kompiliere, erhalte ich diesen Fehler:
Dies scheint ein Unicode-Problem zu sein. Anregungen zur Behebung dieses Problems?
Antworten:
2 für die Antwort № 1Der Visual C ++ - Compiler von Microsoft unterstützt Unicode-Quellcodedateien. Insbesondere akzeptiert es utf-8 (Byte-Auftragsmarkierung erforderlich) oder UTF-16:
Quellcodedateien
Unicode-Zeichen werden jetzt in Bezeichnern, Makros, Zeichen- und Zeichenliteralen sowie in Kommentaren unterstützt. Es werden jetzt auch universelle Zeichennamen unterstützt.
Unicode kann in den folgenden Codierungen in eine Quellcodedatei eingegeben werden:
UTF-16 Little Endian mit oder ohne Byte Order Mark (BOM)
UTF-16 Big Endian mit oder ohne Stückliste
utf-8 mit Stückliste
Beachten Sie insbesondere, dass für utf-8 die Byte-Reihenfolge giltMarkierung ist erforderlich. Das Dialogfeld in Ihrem Screenshot zeigt den Visual Studio-Editor, der feststellt, dass Sie Nicht-ASCII-Zeichen eingegeben haben, und fragt Sie, ob Sie die Quellcodedatei in utf-8 oder UTF-16 konvertieren möchten (nicht sicher, was der Standard ist, aber " Wenn Sie auf Ja klicken, wird die Datei mit einer utf-8-Byte-Auftragsmarke (BOM) gespeichert, und alles sollte in Ordnung sein.