试图在Qt中创建一个UTF-8编码的文件
int main()
{
QString unicodeString = "Some Unicode string";
QFile fileOut("D:\\Temp\\qt_unicode.txt");
if (!fileOut.open(QIODevice::WriteOnly | QIODevice::Text))
{
return -1;
}
QTextStream streamFileOut(&fileOut);
streamFileOut.setCodec("UTF-8");
streamFileOut << unicodeString;
streamFileOut.flush();
fileOut.close();
return 0;
}
我以为当QString是默认的Unicode,当我将输出流的编解码器设置为UTF-8,我的文件将是UTF-8。但它不是,它是ANSI。
需要再设置就可顺利解决解决,用notepad++查看无误。
streamFileOut.setGenerateByteOrderMark(true);