Название: Проблема с кодировкой
Отправлено: 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 не гарантируется.
|