Название: Проблема с кодировками Отправлено: NortT от Июнь 14, 2011, 15:52 Всем привет. Возникла проблема. Пишу софтинку, которая имеет textEdit. Данные едита сохраняются в текстовый файл в html виде. Если запустить софтину под линуксом, сохранить файл и затем его открыть его в этой же софтине, но в винде, то все ок. Если же создать файл под виндой, сохранить его и переоткрыть опять же под виндой, то ломается кодировка (ромбики черные с вопросами белыми внутри). При чем если открыть оба эти файла в обычном виндовом блокноте, то все нормально, текст отображается у все нормально. Как это можно поправить?
Название: Re: Проблема с кодировками Отправлено: iks от Июнь 14, 2011, 16:07 Я в таком случае делаю проще или перезагружаю файл в cp1251, но чаще Ctrl+S Ctrl+C и Ctrl+V тоже бывает что винда меняет кодировки если начинаеш в ней править и потом запускаеш по Linux. А еще можно сразу создавать файлы в cp1251 и уже проблем не будет
Название: Re: Проблема с кодировками Отправлено: kambala от Июнь 14, 2011, 16:48 А еще можно сразу создавать файлы в cp1251 и уже проблем не будет почему не utf-8 (16, или даже 32)?Название: Re: Проблема с кодировками Отправлено: NortT от Июнь 14, 2011, 18:27 А как перегружаешь?
При сохранении из едита в файл у меня документ имеет такой вид: Код А как мне программно изменить meta, чтоб явно указать, что текст хранится в утф8? Название: Re: Проблема с кодировками Отправлено: zenden от Июнь 14, 2011, 18:55 покажи код сохранения и загрузки
Название: Re: Проблема с кодировками Отправлено: LisandreL от Июнь 14, 2011, 20:46 покажи код сохранения и загрузки И установки кодировок.Название: Re: Проблема с кодировками Отправлено: iks от Июнь 14, 2011, 21:28 Ну я вообще говорил о файлах самого проекта, до этого, то-есть .h .cpp .pro, а так я всегда проще делаю, в самом начале mail вставляю строку
Код: QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")); Название: Re: Проблема с кодировками Отправлено: NortT от Июнь 15, 2011, 03:13 Кодировку задаю вот так:
Код А сохранение показать сложнее... У меня кол-во текстЕдитов произвольное, и html-код едитов я при сохранении запихиваю в QDomDocument и после этого зипую получившийся хмл. Последний этап сохранения такой: Код Вот так пихаю в хмл (на примере одного элемента): Код Заголовок у хмл документа задаю так: Код
Название: Re: Проблема с кодировками Отправлено: DmP от Июнь 15, 2011, 11:03 Можно использовать следующие ф-ции, и все будет работать одиноково:
void QDomNode::save ( QTextStream & str, int indent, EncodingPolicy encodingPolicy ) const (http://doc.qt.nokia.com/4.7/qdomnode.html#save-2) void QTextStream::setCodec ( const char * codecName ) (http://doc.qt.nokia.com/4.7/qtextstream.html#setCodec-2) Название: Re: Проблема с кодировками Отправлено: NortT от Июнь 16, 2011, 13:42 То что надо! 8)
|