在QT中判断一个文件的字符编码格式,通常状况下,我们都可以根据文件BOM头来判断
下面是BOM头不存在的情况判断方式.
QTextCodec::ConverterState state;
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
// indata.setCodec(codec);
// str = indata.readAll();
const QByteArray data = file->read(file->bytesAvailable());
const QString text = codec->toUnicode(data.constData(),data.size(),&state);
if(state.invalidChars > 0){
//不是UTF-8格式的文件
qDebug() << "1";
}