2011-05-13 47 views
0

我的問題如下:我的程序使用項目並將其設置保存在XML文件中。它還使用相同的QXmlStreamWriter類創建可查看的HTML文件。但是,因爲XML應該跳過特定的符號,所以在HTML文件中很多字符都不是用粗體表示的。有沒有辦法使用XML流將任何QString直接寫入HTML文件?像writeRaw()功能?Qt:XML流不直接寫入字符串

因爲我找不到解決這個問題的辦法,我不得不創建一個QTextStream(xml->device())並寫入流中。然而,這個流似乎是異步工作的,並且根據情況,有時只在XML流寫完整個文件之後才寫它的代碼部分。用HTML術語來說,這意味着代碼的一部分出現在</html>標籤之後。還有其他解決方案嗎?

我將不勝感激任何幫助!

回答

0

好的,我解決了我的問題。

在文檔中它說QString::QString(QByteArray&)使用QString::fromAscii()函數將字節數組轉換爲強壯。我用QString::fromUtf8(myByteArray)替換了這部分,它工作!

+0

請注意,來自Ascii並不完全是你想象的(我猜)。如果已經使用QTextCodec :: setCodecForCStrings()設置了編解碼器,則將其用於將str轉換爲Unicode;否則這個函數和fromLatin1()一樣。 – 2011-05-18 13:16:16