Nicht in der Lage zu sein, das zu verstehen, ist eine echte Schande...
Ich arbeite mit einer französischen Version von Visual Studio (2008) in einem französischen Windows (XP). Französische Akzente, die in Zeichenfolgen an das Ausgabefenster gesendet werden, werden beschädigt. Gleiches gilt für die Eingabe aus dem Ausgabefenster. Typisches Zeichencodierungsproblem. Ich gebe ANSI ein, erhalte UTF-8 zurück oder etwas in der Art. Welche Einstellung kann sicherstellen, dass die Zeichen in ANSI bleiben, wenn eine "fest codierte" Zeichenfolge im Ausgabefenster angezeigt wird?
EDIT:
Beispiel:
#include
int main()
{
std::cout << "àéêù" << std::endl;
return 0;
}
Wird im Ausgabefenster angezeigt:
óúÛ¨
(hier als HTML für Ihr Sehvergnügen encodiert)
Ich würde gerne möchten, dass es stattdessen so angezeigt wird:
àéêù
0 Stimmen
Can you give us a little bit more input. Is this happening for build output, all output or something else? Can you give us a specific operation for which this happens (build, debugging, etc ...)
0 Stimmen
Ja, bitte zeigen Sie ein Beispiel dafür, was Ihrer Meinung nach erscheinen sollte und was tatsächlich erscheint.
1 Stimmen
Was passiert, wenn Sie wcout verwenden?
0 Stimmen
Es ist praktisch in allen Ausgaben. Debug, Build, Watcher, usw.
0 Stimmen
@Naveen: Kein Erfolg, ändert nichts.
1 Stimmen
Ich bin mir nicht sicher, aber ich glaube, du solltest _T() oder L"" verwenden, um Unicode-Zeichenfolgen in Visual Studio zu spezifizieren. Kannst du das einmal mit wcout ausprobieren?
0 Stimmen
@Naveen: Ich habe
L"àéêù"
ausprobiert, leider ohne Erfolg. Ich bin mir nicht sicher, wie _T() funktioniert... Kannst du bitte ein konkretes Beispiel geben?0 Stimmen
Es wird als _T("naveen") verwendet, aber ich erwarte nicht, dass es funktioniert, da L"" nicht funktioniert. Vielleicht ein anderes Problem..
1 Stimmen
Warum verwenden Sie nicht breite Zeichenfolgen? So implementiert Windows die Unicode-Unterstützung.
0 Stimmen
Alle Zeichen der französischen Sprache werden ohne Unicode als erweitertes Ascii unterstützt. Deshalb verwende ich kein Unicode, ich sollte es nicht brauchen.
0 Stimmen
Windows versteht kein "Erweitertes ASCII". Es versteht nur lokalspezifische Codepages (wahrscheinlich Standardwerte 1252 für Ihren Computer) und Unicode.
2 Stimmen
Seitdem diese Antwort 2018 bei einer Google-Suche erschienen ist, werde ich einen Kommentar hinterlassen. C++11 oder später unterstützt UTF-8 für den Ausführungszeichensatz mit
u"..."
. Visual C++ 2008 unterstützte UTF-8 mit BOM als Quellenzeichensatz, und aktuelle Versionen unterstützen es ohne BOM mit dem/UTF-8
-Schalter. Andere Compiler, einschließlich gcc, clang und icc, unterstützen es ebenfalls. Der Sprachstandard erlaubt seit Jahren, dass Compiler beliebige Quell- und Ausführungszeichensätze unterstützen, solange sie eine minimale Anzahl von Grundzeichen enthalten.0 Stimmen
@Davislor Vielen Dank dafür! Könntest du das als Antwort schreiben? Das ist sicherlich relevant und würde Aufmerksamkeit darauf lenken.
0 Stimmen
@MPelletier Erledigt. Vielleicht ein wenig übertrieben.