Problem mit Umlauten bei Umwandlung nach HTML!

Alles rund um die Programmierung mit Qt
Antworten
Lichter
Beiträge: 23
Registriert: 20. Januar 2011 12:48

Problem mit Umlauten bei Umwandlung nach HTML!

Beitrag von Lichter »

Guten Tag,

leider hab ich ein Problem mit Umlauten bei der Umwandlung einiger Daten aus einer Tableview nach HTML.
Ich verwende folgende Schleife:

Code: Alles auswählen

if (ui.tableView) {

        

        QFile file("mytable.html");
		
	file.open();	
       
        QTextStream out(&file);
	
        const long rowCount = ui.tableView->model()->rowCount();
        const long columnCount = ui.tableView->model()->columnCount();
		
        out <<  "<html>\n"
                "<head>\n"
                "<meta Content=\"Text/html; charset=Windows-1251\">\n"
				<<  QString("<title>Buchsammlung</title>\n")
            <<  "</head>\n"
                "<body bgcolor=#ffffff link=#5000A0>\n"
                "<table border=1 cellspacing=0 cellpadding=2>\n";

        // headers
        out << "<tr bgcolor=#f0f0f0>";
        for (long column = 0; column < columnCount; column++)
            if (!ui.tableView->isColumnHidden(column))
				out << QString("<th>%1</th>").arg(ui.tableView->model()->headerData(column, Qt::Horizontal).toString()); 
        out << "</tr>\n";
        file.flush();

        // data table
        for (long row = 0; row < rowCount; row++) {
            out << "<tr>";
            for (long column = 0; column < columnCount; column++) {
                if (!ui.tableView->isColumnHidden(column)) {
					QString data = ui.tableView->model()->data(ui.tableView->model()->index(row, column)).toString();
					
					out << QString("<td bkcolor=0>%1</td>").arg((!data.isEmpty()) ? data : QString("&nbsp;")); 
                }               
            }
            out << "</tr>\n";
        }
        out <<  "</table>\n"
            "</body>\n"
            "</html>\n";

        file.close();
    }
Leider werden die Umlaute falsch angezeigt. Mir ist auch nicht klar, welche Zeichenkodierung dafür in Frage kommen würde und wie ich das umsetzen kann. Erfolglos habe ich bereits probiert "data" nach Latin1 bzw. Utf8 umzuwandeln.
Es wäre nett, wenn mir jemand einen Denkanstoß geben könnte oder eine Richtung vorweisen könnte, damit ich das umsetzen kann.
Vielen Dank!

Lichter
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Code: Alles auswählen

"<meta Content=\"Text/html; charset=Windows-1251\">\n" 
So, so, nach Latin-1 oder UTF-8 wollen wir umwandeln?
softwaremaker
Beiträge: 149
Registriert: 1. April 2009 19:25

ja die Sache mit dem Codec

Beitrag von softwaremaker »

schau dir mal folgende Funktion an:
void QTextStream::setCodec ( QTextCodec * codec )
Lichter
Beiträge: 23
Registriert: 20. Januar 2011 12:48

Beitrag von Lichter »

upsala hat geschrieben:

Code: Alles auswählen

"<meta Content="Text/html; charset=Windows-1251">\n" 
So, so, nach Latin-1 oder UTF-8 wollen wir umwandeln?
Hallo,
das war der Grund! Ich hab charset nach UTF-8 geändert und .toUtf8() verwendet. Nun klappts!

Vielen Dank!
Antworten