/**
* by songhongyu on 2019-09-16![大笑](http://static.blog.csdn.net/xheditor/xheditor_emot/default/laugh.gif)
*/
<main.cpp>
#include "mainwindow.h"
#include <QApplication>
#include <QTextCodec>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec *codec = QTextCodec::codecForName("system");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
MainWindow w;
w.show();
return a.exec();
}
<mainWindows.h>
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
void func1();
void func2();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
<mainWindows.cpp>
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDomDocument>
#include <QFile>
#include <QDomElement>
#include <QDomComment>
#include <QString>
#include <QFileDialog>
#include <QTextStream>
#include <QTextCodec>
#include <QDataStream>
#include "fstream"
#include "Windows.h"
#include <iostream>
#include <fstream>
#include <set>
#include <sstream>
#include <QMessageBox>
using namespace std;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
func2();
func1();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::func1()
{
QString szFilename = "Test.xml";
QFile file( szFilename );
if( !file.open(QIODevice::ReadWrite | QIODevice::Text | QIODevice::Append) )
{
return;
}
QTextStream out(&file);
QDomDocument document;
//QString strHeader( "version=\"1.0\" encoding=\"UTF-16LE\"" );
//document.appendChild( document.createProcessingInstruction("xml", strHeader) );
QDomElement root_elem = document.createElement( "items" );
//QTextCodec *codec = QTextCodec::codecForCStrings();
QString szTest = "哈喽";
ui->pushButton->setText(szTest);
ui->pushButton_2->setText("哈哈");
root_elem.setAttribute( ui->pushButton->text(), 1 );
root_elem.setAttribute(ui->pushButton_2->text(), 1 );
document.appendChild( root_elem );
out.setCodec("UTF-16LE");
document.save(out, 4, QDomNode::EncodingFromTextStream);
file.close();
}
void MainWindow::func2()
{
ofstream out("Test.xml");
unsigned char head[3] = {0xff,0xfe,0x00};//unicode文件头,0x00必须加上
out << head;
out.close();
}