2011-07-18 65 views
0

我通過QXmlStreamWriter在Windows編寫XML文件時有編碼的問題,我該怎麼解決呢?使用stream.setCodec("UTF-8")或「windows-1251」沒有幫助。QXmlStreamWriter和西里爾

QFile *file = new QFile(filename); 
if (file->open(QIODevice::WriteOnly | QIODevice::Text)) 
     { 
     QXmlStreamWriter stream(file); 
     stream.setAutoFormatting(true); 
     stream.writeStartDocument(); 
     stream.writeStartElement("СЕКЦИЯ"); // start root section 
      stream.writeStartElement("FIELD"); 
      stream.writeAttribute("name", "Имя"); 
      stream.writeAttribute("value", "Иван"); 
      stream.writeEndElement(); 
     stream.writeEndElement(); // END СЕКЦИЯ 
     file->close(); 
} 
+0

'stream.writeEndDocument()'錯過了,我打開文件二進制文件('file-> open(QIODevice :: WriteOnly)')。 – Naszta

+0

這是示例代碼,我有succ工作代碼,但在編碼問題。 – mcuw

回答

1

最有可能的解釋源文件中的字符串文字是問題,而不是流編寫器的配置。 確保您的源文件使用UTF-8編碼,並使用QString :: fromUtf8(「Imja」)等(當然是西里爾語的Imja),而不是隱式文字到QString的轉換。