在我的程序中,我加载了用户提供的纯文本文件:
QFile file(fileName);
file.open(QIODevice::ReadOnly);
QTextStream stream(&file);
const QString &text = stream.readAll();
当文件是 UTF-8 编码时,这可以正常工作,但是一些用户尝试导入 Windows-1252 编码的文件,并且如果他们有带有特殊字符的单词(例如“boutonnière”中的“è”),这些将不正确地显示。
有没有办法检测编码,或者至少区分 UTF-8(可能没有 BOM)和 Windows-1252,而不要求用户告诉我编码?