Создать файл UTF-8 в Qt

Я пытаюсь создать файл с кодировкой UTF-8 в Qt.

#include <QtCore>

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. Что я делаю не так? Что-то не так с моими струнами? Можете ли вы исправить мой код для создания файла UTF-8? Следующим шагом для меня будет чтение файла ANSI и его сохранение как файл UTF-8, поэтому мне придется выполнять преобразование для каждой прочитанной строки, но теперь я хочу начать с файла. Спасибо.

18
задан Martin Hennings 29 October 2013 в 12:49
поделиться