QFile file(QDate::currentDate().toString("yyyyMMdd") + ".txt");
file.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text);
QTextStream outStream(&file);
outStream.setCodec("UTF-8");
outStream.setGenerateByteOrderMark(true); // UTF-8 BOM
outStream << QString("crc: ok") << endl;
Вижу такую картинку. В чем прикол? Вроде фраза "crc: ok" на инглише. Сейчас скину скриншот. В блокноте и word pade видно. В нотпаде++ все нормально. Сами исходники в utf-8
а BOM не должен быть один раз в начале файла? а то я так понял ты его добавляешь каждый раз перед тем как новые данные записывать
Я думал что он открывает файл в этом режиме и сам добавляет когда надо. Сейчас покапаюсь в исходниках
не уверен. ты его добавляешь в TextStream и потом этот stream добавляешь в конец файла
Спасибо за наводку. Решил так QFile file(...); bool utfBom = !file.exists(); file.open(...); QTextStream outStream(&file); outStream.setCodec("UTF-8"); outStream.setGenerateByteOrderMark(utfBom); Все же постоянно генерирует bom когда буфер пуст перед его заполнением. В hex нашел эту последовательность 0xef, 0xbb, 0xbf. И она везде, где я записываю bom https://code.woboq.org/qt5/qtbase/src/corelib/codecs/qutfcodec.cpp.html#421
Обсуждают сегодня