Probleme mit deutschen Sonderzeichen

Alles rund um die Programmierung mit Qt
Antworten
dieter_
Beiträge: 18
Registriert: 11. November 2012 12:16

Probleme mit deutschen Sonderzeichen

Beitrag von dieter_ »

Der nachfolgende Code funktioniert dann nicht korrekt, wenn der QString folder beispielweise ein ä enthält.
Das Verzeichnis "Währung" wird erstellt, enthält aber nicht das ä.

Code: Alles auswählen

QString befehl,folder;
folder = "~/Schreibtisch/Währung";
//qDebug() << "folder verzeichnisse_anlegen" << folder;
befehl = "mkdir " + folder;
if(system (befehl.toLatin1().data()))
      befehl = "";
Bei der qDebug() Ausgabe wird das ä in Währung noch korrekt angezeigt.
Das erstellte Verzeichnis hat dann diesen Namen:

Code: Alles auswählen

file:///home/dieter/Schreibtisch/W%E4hrung
Es liegt an der Kodierung. Wie muss ich den QString folder umkodieren?

Grüße aus Südbaden
helmut.jakoby
Beiträge: 19
Registriert: 17. Januar 2012 15:26
Kontaktdaten:

Re: Probleme mit deutschen Sonderzeichen

Beitrag von helmut.jakoby »

Guten Morgen Dieter,
Mal ins Blaue, aber ich glaube, dass Linux mit dem Zeichensatz "UTF-8/Unicode" und Windows mit "UTF-16/Unicode". Ich kann mich an irgendein Projekt erinnern, wo wir unter Windows auf WString konvertieren mussten.
Also, ich würde probieren über studieren stellen.
Probiere doch mal alle QString-Konvertier-Methoden aus:

Code: Alles auswählen

std::string	toStdString() const
std::u16string	toStdU16String() const
std::u32string	toStdU32String() const
std::wstring	toStdWString() const
QByteArray	toUtf8() const
qsizetype	toWCharArray(wchar_t *array) const
Schöne Festtage 🎄✨
dieter_
Beiträge: 18
Registriert: 11. November 2012 12:16

Re: Probleme mit deutschen Sonderzeichen

Beitrag von dieter_ »

Guten Abend Helmut,
Danke für Deine Hinweise.

So sieht die Lösung aus:
Ich habe bei dem system befehl die Kodierung geändert. So funktioniert das korrekte Anlegen eines Verzeichnisses mit Sonderzeichen und auch das Kopieren von Dateien mit Sonderzeichen:

Code: Alles auswählen

befehl = "mkdir " + folder;
if(system (befehl.toUtf8().data()))
           befehl = "";
helmut.jakoby
Beiträge: 19
Registriert: 17. Januar 2012 15:26
Kontaktdaten:

Re: Probleme mit deutschen Sonderzeichen

Beitrag von helmut.jakoby »

Hallo Dieter,
das freut mich.
Beste Grüße
Helmut
Antworten