#include <QCoreApplication>
#include <iostream>
#include <QStringList>
#include <QString>
#include <QTextCodec>
#include <QDebug>
#include <QFile>
#include <QDataStream>
#include <QByteArray>
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
//读文件
QFile file("C:\\Users\\08497\\Desktop\\热词1utf8bom.txt");
if(file.open(QIODevice::ReadOnly))
{
qDebug()<<"file open ok";
}
else
{
qDebug()<<"file open error";
}
QByteArray array = file.readAll();
file.close();
//判断读取文本的编码
QTextCodec::ConverterState state;
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
codec->toUnicode(array.constData(), array.size(), &state);
if (state.invalidChars > 0)
{
qDebug()<<"is not utf8 code";
return 0;
}
else
{
qDebug()<<"is utf8 code";
char * data = array.data();
if(data[0] == '\xEF' && data[1] == '\xBB' && data[2] == '\xBF')
{
qDebug()<<"is utf8-bom code";
return 0;
}
else
{
array.insert(0,"\xEF\xBB\xBF");
}
}
//写文件
if(file.open(QIODevice::WriteOnly))
{
qDebug()<<"file open ok";
}
else
{
qDebug()<<"file open error";
}
if(file.write(array,array.size()) == -1)
{
qDebug()<<"write date to file error";
}
file.close();
return 0;
}
qt 判断文件是utf8还是utf8-bom格式,以及utf8转utf8-bom
最新推荐文章于 2024-05-24 14:28:49 发布