Seite 1 von 1

Codierung Umlaute

Verfasst: 12. November 2019 09:53
von Tomaxx
Hallo Leute

In meinem Code steht:

Code: Alles auswählen

tr("Programmname® Vollversion.\n Volle Funktionalität").toStdString()
Auf dem Bildschirm erscheint:

Code: Alles auswählen

Programmname� Vollversion.
 Volle Funktionalit�t
Was mache ich falsch?

Danke
Thomas

Re: Codierung Umlaute

Verfasst: 12. November 2019 15:37
von tamasi
toSdtString liefter einen std::string. Der ist 8bit (char).
Du brauchst die Funktion toStdWString. Da kommt ein wchar_t raus. Der beherrscht Unicode.

Re: Codierung Umlaute

Verfasst: 12. November 2019 16:07
von Tomaxx
Gibt es ein tr() mit dem ich die Ausgabe von toStdWString() verarbeiten kann?
Oder kann ich die Ausgabe weiter umwandeln in einen StdString?

Re: Codierung Umlaute

Verfasst: 14. November 2019 15:35
von tamasi
Das tr() wird vor dem toStdWString() aufgerufen.

tr erzeugt einen temporären QString den du anschließend gleich per toStdWString() umwandelst und dann irgendwo speichern/anzeigen kannst.

Re: Codierung Umlaute

Verfasst: 19. November 2019 13:13
von Tomaxx
Ich benutze eine Funktion

Code: Alles auswählen

void meldung(string meldungstext = " ", bool mspace = false)
die verlangt einen string. Kann ich den StdWString danach wieder zum StdString wandeln? Oder muss ich eine zweite funktion für den Typ schreiben?
Wie ist dann der typ, den ich in der Funktion initialisieren muss?

Re: Codierung Umlaute

Verfasst: 20. November 2019 14:33
von tamasi
std::string enthält keine codec Informationen. Sollen dort solche Umlaute verwendet werden müsste die Funktion void meldung(...) das selbst wissen und erledigen. Ist es eine fremde Funktion wird das natürlich schwierig.
Im schlimmsten Fall müsste noch eine Hilfsfunktion her, die den Text dann zumindest teilweise ersetzt z. B. ä zu ae usw und diesen ersetzen Text dann der Funktion meldung(...) übergibt.

Re: Codierung Umlaute

Verfasst: 29. November 2019 15:01
von Tomaxx
Hat sich in Qt irgendwas geändert? Das phänomen tritt erst seit ca. 2 Monaten auf.

Oder muss ich den editor auf einen anderen code umstellen?

Re: Codierung Umlaute

Verfasst: 30. November 2019 11:30
von Christian81
Der Code sollte immer utf-8 sein, der Compiler (alle außer msvc) interpretieren die Code nämlich als solches. Für msvc braucht man zusätzlich den switch '/utf8'.
Aber am besten nur ascii benutzen, den Rest per translator übersetzen - dann hat man keine Probleme mit irgendwelchen Kodierungen.

Re: Codierung Umlaute

Verfasst: 2. Dezember 2019 07:50
von Tomaxx
Wie kommt es, dass das Phänomen nur auf einem PC auftritt, auf meinem zu Hause nicht?

Re: Codierung Umlaute

Verfasst: 4. Dezember 2019 11:25
von Tomaxx
Witzig ist, dass die falschen Umlaute nur beim Start unter QT angezeigt werden.
Installiere ich mein Programm auf dem Selben Computer, ist alles OK.

Thomas

Re: Codierung Umlaute

Verfasst: 5. Dezember 2019 06:46
von Christian81
Wie kommt es, dass das Phänomen nur auf einem PC auftritt, auf meinem zu Hause nicht?
Nach oben
Weil es auf die Kodierung des Programms beim Start ankommt.