Russian Qt Forum
Июнь 16, 2024, 00:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Help! Кодировка DOSовского файла.  (Прочитано 10507 раз)
Alan
Гость
« : Июль 07, 2004, 13:39 »

Привет All!

Как  считать DOS - файл, чтобы корректно отображался русский шрифт! У меня он имеет такой вид - НепонимающийНепонимающийНепонимающий?? Непонимающий? НепонимающийНепонимающий?? ?? Непонимающий?
Записан
rjaan
Гость
« Ответ #1 : Июль 07, 2004, 15:58 »

Есть переводная статья к руководству по Qt-2.х, которая называется Поддержка русского языка в Qt-2.x. В этой статье описаны методы перевода из одной  кодировки в другую. А лучше статью прочитать всю для полного ознакомления с работой со строками в Qt.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #2 : Июль 09, 2004, 11:07 »

для строки я делал QString::fromLocal8Bit(s);
где s - это строка QCString, содержащая текст в ДОС-кодировке
вроде работало...
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
EugeneVC
Гость
« Ответ #3 : Июль 09, 2004, 12:08 »

эт ото у тебя локаль досовская?
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #4 : Июль 09, 2004, 14:37 »

имеется в виду 8 бит Улыбающийся а если локаль русская - то по идее 8 бит и есть ASCII...
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Sergeich
Гость
« Ответ #5 : Июль 12, 2004, 18:24 »

QString txt;
   QFile file( yourDOS_FileName );
   if ( file.open( IO_ReadOnly ) ) {
      QTextStream stream( &file );
      stream.setCodec( QTextCodec::codecForName("utf8") );
      txt = stream.read();
      file.close();
}
Записан
Sergeich
Гость
« Ответ #6 : Июль 12, 2004, 18:31 »

Пардон, вместо
stream.setCodec( QTextCodec::codecForName("utf8") );

stream.setCodec( QTextCodec::codecForName("IBM 866") )
Записан
Alan
Гость
« Ответ #7 : Июль 15, 2004, 23:52 »

Кстати, а как все это безобразие в консольном приложении под Win2000  корректно увидеть?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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