LINUX.ORG.RU

Как сделать чтобы QTextStream сохранял в UTF-8?


0

0

Как можно проще всего сохранить текст прописанный в QPlainTextEdit в UTF-8? setCodec() не помогает:(

Код:
QTextStream out(&file);
//out.setAutoDetectUnicode(false);
out.setCodec("UTF-8");
out << codeEdit->toPlainText();

Также в main.cpp прописано:
QTextCodec *codec = QTextCodec::codecForName("UTF8");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForLocale(codec);

?

// компилю под mingw32-qt :-)

anterior
() автор топика

необходимо просто сохранить содержимое codeEdit в файл? больше с файлом ничего делать не нужно, просто сохранить в него данные с QString и всё?

arsi ★★★★★
()
Ответ на: комментарий от arsi

Ага, так точно :) По умолчанию она его сохраняет в системной локали, а надо чтобы он был в UTF-8. (Предполагается что в codeEdit присутствуют символы кириллицы например)

anterior
() автор топика
Ответ на: комментарий от arsi

Кажется докопался до истины. Дело было в том, что QFile() открывался в режиме QFile::WriteOnly | QFile::Text. Убрал QFile::Text и заработало :) Баг?

Спасибо! :)

anterior
() автор топика
Ответ на: комментарий от anterior

> Баг?

о_О скорее всего…

QIODevice::Text

When reading, the end-of-line terminators are translated to '\n'. When writing, the end-of-line terminators are translated to the local encoding, for example '\r\n' for Win32.

на кодировки оно вообще никак не должно влиять…

arsi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.