Re: Kann unter Qt mit Suse 9.2 keine Umlaute ausgeben.

Peter Wabersich <[email protected]>
Newsgroups gmane.linux.suse.programming
Message-ID <[email protected]>
Vielen Dank fÌr die BeitrÀge, ich konnte Aufgrund der Hinweise und 
VorschlÀge mein Problem lösen. Die Lösung sieht so aus und funktioniert 
auch:

Code-Auszug:

  QString s7;
  s7.sprintf("Schöne Umlaute: ÖÄÜ, öÀÌ");
  p.drawText(20,580, QString::fromUtf8(s7)  );

Ich wusste nicht, dass es entscheidend sein kann, in welcher Art und 
Weise der verwendete Editor kodiert. Aber in diesem Fall, ist dies 
entscheidend, denn in dessen AbhÀngigkeit muss man dann den Zeichensatz 
codieren unter Qt.

Ich habe als Editor unter anderem KDevelop benutzt, ohne dort irgend 
welche großartigen Einstellungen zu verÀndern. Dort findet man unter 
Einstellungen->Editor-Einstellungen->Öffnen/Speichern, folgende 
Informationen:
Öffnen und Speichern von Dateien:
Dateiformat:
Kodierung: Unicode (utf8)
Zeilenende: Unix

Ohne es zu wissen, habe ich also Unicode (utf8) verwendet, 
dementsprechend musste ich auch die Umwandlung:
QString::fromUtf8 ( const char * utf8, int len = -1 ) verwenden.
Returns the Unicode string decoded from the first len bytes of utf8, 
ignoring the rest of utf8. If len is -1 then the length of utf8 is used. 
If len is bigger than the length of utf8 then it will use the length of 
utf8.

Wenn man eine Datei unter KDevelop öffnet, hat man auch noch die 
Möglichkeit den Zeichensatz der entsprechenden Datei zu Àndern, denn 
ganz oben rechts, wird der verwendete angezeigt, bei mir: utf8, mit der 
Möglichkeit, einen anderen einzustellen.

Da ich bei diesen Einstellungen grundsÀtzlich nichts verÀndert hatte, 
habe ich wie gesagt, immer utf8 verwendet, ohne diesem Zustand bisher 
große Aufmerksamkeit zu schenken. Von nun ab, werde ich dem verwendetem 
Zeichensatz immer meine Aufmerksamkeit zuteil werden lassen, 
insbesonders bei Programmierarbeiten.

UnabhÀngig davon, weil mich das Problem so genervt hat, habe ich mir mal 
die Sache unter Windows XP angeschaut.

QString s7=QString("ÄÖÜ, ÀöÌß");   //Eingabe unter XP, Visuall C++ 6.0 ,geht
p.drawText(20,620,s7);

QString s33;
s33.sprintf("Hööööööööööhe (neuer Test) in mm: %d",789);   //von 
Programmer's File Editor unter XP,geht
p.drawText(20,580,s33);

Es wurden an Visuall C++ 6.0 und an Programmer's File Editor keinerlei 
Änderungen durchgefÃŒhrt und obige Zeilen funktionierten sofort, mit der 
gewÃŒnschten Ausgabe, d.h., die Umlaute werden richtig dargestellt. Der 
verwendete Zeichensatz war bei beiden Programmen: Western (ISO-8859-1).

WÌnschen wÌrde ich mir persönlich, das diese Problematik in den 
ProgrammierbÃŒchern zu Qt erscheinen wÃŒrde und zwar beim ersten Kapitel, 
beim ersten Programm. Denn bereits hier arbeitet man mit einem Editor, 
der einen bestimmten Zeichensatz benÃŒtzt, der beachtet werden muss. Ich 
habe bereits mit drei verschiedenen BÃŒchern zu Qt gearbeitet, um in die 
Programmierung unter Qt einzusteigen und in keinem wird diese 
Problematik erwÀhnt. Bei den englischen BÌchern wÌrde ich das ja noch 
verstehen, aber bei den deutschen BÃŒchern,  kann ich das nicht  
nachvollziehen,  da wir nun mal die Umlaute in unsere Sprache haben und 
die entsprechende Problematik demzufolge auch behandelt werden muss.

Ich hoffe, das dieser Beitrag dazu dient, zum einen, diese Problematik 
bekannt zu machen und zum anderen, eine Lösungsmöglichkeit bietet, damit 
andere BenÃŒtzer, die in die Programmiersprache Qt einsteigen wollen, 
besonders unter Linux, nicht von diesem Problem betroffen werden, dessen 
Lösung mich schon einiges an Zeit und Nerven gekostet hat 8-) .

In diesem Sinne, nochmals Danke, an alle, die zur Lösungsfindung 
beigetragen haben und fröhliches programmieren auch weiterhin, denn das 
nÀchste Problem kommt bestimmt.

Mit freundlichen GrÌßen
Peter Wabersich



Stefan Hundhammer schrieb:
>On Friday 20 May 2005 14:04, Tilman Schmidt wrote:
>  
>>Das sieht so aus, als ob Du den Quelltext UTF-8 codiert gespeichert
>>hast
>>    
>
>Uh - so herum kann es natÃŒrlich auch sein.
>
>Dann nimmt man
>
>    http://doc.trolltech.com/3.3/qstring.html#fromUtf8
>
>    QString::fromUtf8( "HÀllö, Wörld" );
>
>
>CU
>  


-- 
Um die Liste abzubestellen, schicken Sie eine Mail an:
    [email protected]
Um eine Liste aller verfÃŒgbaren Kommandos zu bekommen, schicken
Sie eine Mail an: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.