Russian Qt Forum
Сентябрь 21, 2024, 12:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Кодеки  (Прочитано 5762 раз)
QCasper
Гость
« : Февраль 15, 2007, 23:36 »

Избитая в хлам тема, но я уже затрахался и, сгорая от стыда, задаю это вопрос. У меня в QLineEdit написано "привет". Как сохранить этот "привет" в текстовый файл? В смысле чтобы "привет" получился а не лажа.

Qt4, WindowsXP.
Записан
nova
Гость
« Ответ #1 : Февраль 16, 2007, 00:02 »

Код:

QTextCodec *codec = QTextCodec::codecForName("IBM866");
QByteArray encodedString =codec->fromUnicode(lineEdit->text());
file.write(encodedString,encodedString.size());

если надо писать в utf8 замени IBM866 на Windows-1251.
если в KOI8-R то IBM866 на KOI8-R.
или открой твой записанный вфайл в редакторе который понимает UTF-8 Улыбающийся
Записан
QCasper
Гость
« Ответ #2 : Февраль 16, 2007, 00:09 »

Цитата: "nova"
Код:

QTextCodec *codec = QTextCodec::codecForName("IBM866");
QByteArray encodedString =codec->fromUnicode(lineEdit->text());
file.write(encodedString,encodedString.size());

если надо писать в utf8 замени IBM866 на Windows-1251.
если в KOI8-R то IBM866 на KOI8-R.
или открой твой записанный вфайл в редакторе который понимает UTF-8 Улыбающийся


Так, это вроде заработало. А вот когда исопльзую вместо file.write(),
Код:
QTextStream out(&file);
out << encodedString;


то получается I?eaao Как быть?
Записан
nova
Гость
« Ответ #3 : Февраль 16, 2007, 00:18 »

Код:

 QTextStream out(&file);
 out.setCodec("IBM866");
 out << lineEdit->text();

Улыбающийся
Доку читать не пробовал ? Подмигивающий
Записан
QCasper
Гость
« Ответ #4 : Февраль 16, 2007, 00:22 »

Цитата: "nova"
Код:

 QTextStream out(&file);
 out.setCodec("UTF-8");
 out << lineEdit->text();

Улыбающийся
Доку читать не пробовал ? Подмигивающий


Вообще пробовал, но видно не дошло. Так с этим тоже понятно, но это все тренировка. На самом деле мне все это надо было для QDomElement::setAttribute, где вторым параметром передается строка, которая берется из лайнедита. Строка кирилическая есесно. А там как кодировать?
Записан
nova
Гость
« Ответ #5 : Февраль 16, 2007, 00:29 »

Ну по идее
Код:

     QTextStream out(device);
     out.setCodec("IBM866");
     domDocument.save(out, IndentSize);

Щас в доке подсмотрел Улыбающийся
попробуй Улыбающийся
Записан
QCasper
Гость
« Ответ #6 : Февраль 16, 2007, 00:33 »

Цитата: "nova"
Ну по идее
Код:

     QTextStream out(device);
     out.setCodec("IBM866");
     domDocument.save(out, IndentSize);

Щас в доке подсмотрел Улыбающийся
попробуй Улыбающийся


Нет, мне это не надо сохранять, а допустим по сети отправить, сразу в виндовой кодировке.
Записан
nova
Гость
« Ответ #7 : Февраль 16, 2007, 00:44 »

А как у тебя не получается ?
з.ы. Я с домом не работал а вдоке читать лень Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 21.