Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: XpycT от Ноябрь 17, 2009, 12:38



Название: Проблема с кодировкой
Отправлено: XpycT от Ноябрь 17, 2009, 12:38
Есть файл в кодировке UTF-16LE, который надо обработать и сохранить в такой-же кодировке. Посмотрел форум - ничего не помогло :(
Мой код (консольное приложение)
Код
C++ (Qt)
#include <stdio.h>
#include <QtCore>
#include <QTextCodec>
 
int main(int argc, char *argv[])
{    
   if (argc==2)
       {
               QString rszFile=argv[1];
               ////////
               QFile fileRead( rszFile);
               if( !fileRead.open( QIODevice::ReadOnly))
               {
                   qCritical( "Can'not open file: %s for read", qPrintable( rszFile));
                   return false;
               }
               QTextCodec *pCodec = QTextCodec::codecForName("UTF-16LE");
               QTextCodec::setCodecForCStrings( pCodec);
 
               QString szData;
               QTextStream out( &fileRead);
               out.setCodec( pCodec);
               QString szLine;
               do
               {
                   szLine = out.readLine();
                   szData += szLine + "\r\n";
               }while( !szLine.isNull());
 
               fileRead.close();
 
               // Здесь идет некая обработка данных...
 
               pCodec = QTextCodec::codecForName("UTF-16LE");
               QTextCodec::setCodecForCStrings(pCodec);
 
               QFile fileWrite( rszFile+".tr");
               if( !fileWrite.open( QIODevice::WriteOnly))
               {
                   qCritical( "Can'not open file: %s for write", qPrintable( rszFile));
                   return false;
               }
 
               QTextStream in( &fileWrite);
               in.setCodec( pCodec);
               in << szData;
               fileWrite.close();
               ////////
 
       }else
       {
               printf("Usage : tlrusencode file.dat\n");
       }
 
   return 1;
}
 

тестовый файл прикреплен. Помогите решить проблему :(


Название: Re: Проблема с кодировкой
Отправлено: ритт от Ноябрь 17, 2009, 21:45
отсутствует QCoreApplication


Название: Re: Проблема с кодировкой
Отправлено: XpycT от Ноябрь 17, 2009, 22:08
да то пофиг что нет QCoreApplication, и так все работает :)

Решение уже подсказали. Тему можно закрывать.


Название: Re: Проблема с кодировкой
Отправлено: shadone от Ноябрь 18, 2009, 14:12
правильная работа QTextCodec без наличия QCoreApplication/QApplication не гарантируется.