Probleme mit der Kodierung
Verfasst: 5. November 2004 09:15
Hallo,
nach reichlicher Sucherei und Probiererei, habe ich es nun geschafft, mein XML-File in die Datenbank zu schreiben.
Nun ist gleich das nächste Problem aufgetreten. Das XML-File, was in der Datenbank steht scheint falsch kodiert zu sein. Zwischen jeden Zeichen ist ein Leerzeichen. Das sieht dann etwa so aus:
< ? x m l v e r s i o n = " 1 . 0 " e n c o d i n g = " U T F - 1 6 " s t
Das ist natürlich schlecht, weil mein Programm mit diesem XML nichts anfangen kann.
Wie bekomm ich diese Leerzeichen weg?
Es passiert dierekt beim Reinschreiben, denn wenn ich mein QCString in ein File schreibe, wird es richtig angezeigt.
Ich vermute, daß mein QCString in "utf8" ist, aber meine Datenbank mit "utf16" arbeitet. Leider kann ich an der Datenbank nichts ändern.
Kann mir jemand helfen?
Viele Grüße
Jana
Mein Code:
nach reichlicher Sucherei und Probiererei, habe ich es nun geschafft, mein XML-File in die Datenbank zu schreiben.
Nun ist gleich das nächste Problem aufgetreten. Das XML-File, was in der Datenbank steht scheint falsch kodiert zu sein. Zwischen jeden Zeichen ist ein Leerzeichen. Das sieht dann etwa so aus:
< ? x m l v e r s i o n = " 1 . 0 " e n c o d i n g = " U T F - 1 6 " s t
Das ist natürlich schlecht, weil mein Programm mit diesem XML nichts anfangen kann.
Wie bekomm ich diese Leerzeichen weg?
Es passiert dierekt beim Reinschreiben, denn wenn ich mein QCString in ein File schreibe, wird es richtig angezeigt.
Ich vermute, daß mein QCString in "utf8" ist, aber meine Datenbank mit "utf16" arbeitet. Leider kann ich an der Datenbank nichts ändern.
Kann mir jemand helfen?
Viele Grüße
Jana
Mein Code:
Code: Alles auswählen
void Database::enterIntoTricsyDB(QString loc){
//to define the path
QString pfad = "";
pfad.append("./");
pfad.append(loc);
QFile file_neu( "layout.txt" );
file_neu.open(IO_ReadOnly);
QString data;
QTextCodec *tcodec = QTextCodec::codecForName("utf8");
data = QString::fromUtf8( file_neu.readAll(), -1);
QCString Data = tcodec->fromUnicode(data);
QSqlQuery insert(database);
insert.prepare("INSERT INTO maps (path, name, content)"
"VALUES (:path, :name, :content)");
insert.bindValue(":path",QString(pfad));
insert.bindValue(":name",QString(name));
insert.bindValue(":content", Data);
insert.exec();
file_neu.close();
}