Umlaute auf Konsole darstellen

Schormi

Mitglied
Hallo,

Ich möchte Umlaute und Sonderzeichen auf der Konsole darstellen.

und zwar habe ich einen string in einem char array der sich variabel ändern kann.

also z.b. steht in fall 1 in dem string: Die Rückgabe war erfolgreich.

und z.b. in fall zwei: Das Ergebnis war ähnlich.

und so weiter... warn nur beispiele.

nun suche ich eine möglich keit wie ich die Umlaute(ä,ö,ü...) ausgeben kann. Wahrscheinlich durch Umwandlung in Unicode(UTF8).
Sprache C++ in Visual Studio 2010

danke schonmal für hilfe,
ein programmier anfänger
 
Hi.

Standardmäßig wird auf der Konsole die OEM 850 Codepage eingesetzt.

Die einfachste Methode wäre, wenn du deine Quelltext auch in diesem Zeichensatz abspeicherst.

Gruß
 
ok, scheint zu funktionieren, in einem Testprogramm gibt er mir die Umlaute normal aus, allerdings habe ich eine Client-Server verbindung die als Antwort ein Char-array bekommt, habe die gleiche Codepage wie in dem Testprojekt eingestellt aber hier werden die Umlaute nicht angezeigt.

eventl. fehler im code? funktioniert aber eigentlich soweit.

Code:
rc = send(s,buf,150,0);  //Socket,buffer,länge,flags:würde die ersten zeichen aus dem buffer senden (100)

		if(rc==0)
		{ 
			printf("Server hat die Verbindung getrennt..\n"); 
		}
	
		if(rc==SOCKET_ERROR) 
		{ 
			printf("Fehler: recv, fehler code: %d\n",WSAGetLastError()); 
		}
	
		rc = recv(s,buf,1000,0); //es werden 355 zeichen empfangen oder weniger die empf. zeichen stehn in rc

	
		if(rc==SOCKET_ERROR) 
		{ 
			printf("Fehler: recv, fehler code: %d\n",WSAGetLastError()); 
		}

		buf[rc] ='\0'; //hinter dem letzten empfangenem byte \0 setzen

		cout << buf;
 
Also laut der kurzen doku:

Port=5016
UnicodePort=5017

mehr steht leider nicht dabei
habe beide Ports ausprobiert, könnte jetzt natürlich fast alle codepages mal durchprobieren obs geht aber naja vll gehts ja auch anders...
gibts da keine umwandel funktion, so wie in C# z.b.:
System.Text.UnicodeEncoding.Unicode.GetBytes(text)
 
Wenn man weiß welches Encoding verwendet wird, dann kann man auch in ein anderes Encoding umwandeln.

Unicode ist kein Encoding, es ist ein Standard für Zeichencodes. Kodierungen wären UTF-8, UTF-16 LE, UTF-32 usw.

Gruß
 
Zurück