QtProger
Гость
|
|
« : Октябрь 18, 2009, 13:21 » |
|
Надо записать в файл текст, попробовал вот так, после выполнения этого кода в файле оказалось I?eaao. Как правильно записать в файл ? C++ (Qt) QFile file(fileName); file.open(QIODevice::WriteOnly); QTextStream text(&file); text << "Привет";
|
|
|
Записан
|
|
|
|
BRE
Гость
|
|
« Ответ #1 : Октябрь 18, 2009, 13:27 » |
|
Надо записать в файл текст, попробовал вот так, после выполнения этого кода в файле оказалось I?eaao. Как правильно записать в файл ?
Почитай про кодировки и void QTextStream::setCodec ( QTextCodec * codec ); void QTextStream::setCodec ( const char * codecName );
|
|
|
Записан
|
|
|
|
break
|
|
« Ответ #2 : Октябрь 18, 2009, 13:43 » |
|
+ еще может помочь text << QStringFromUtf8( "Привет" ); если исходник в utf8
|
|
|
Записан
|
|
|
|
QtProger
Гость
|
|
« Ответ #3 : Октябрь 18, 2009, 13:53 » |
|
Написал text.setCodec("UTF-8"); но все равно получается абракадабра. Не понимаю ! UTF-8 - это юникод, а юникод ведь должен поддерживать русские символы
|
|
|
Записан
|
|
|
|
QtProger
Гость
|
|
« Ответ #4 : Октябрь 18, 2009, 13:59 » |
|
Написал text << QString::fromUtf8( "Привет" ); Теперь в файле вопросительные знаки
|
|
|
Записан
|
|
|
|
BRE
Гость
|
|
« Ответ #5 : Октябрь 18, 2009, 14:02 » |
|
Написал text << QString::fromUtf8( "Привет" ); Теперь в файле вопросительные знаки
А в какой кодировке твои исходники?
|
|
|
Записан
|
|
|
|
QtProger
Гость
|
|
« Ответ #6 : Октябрь 18, 2009, 14:04 » |
|
А в какой кодировке твои исходники?
Как это узнать ?
|
|
|
Записан
|
|
|
|
BRE
Гость
|
|
« Ответ #7 : Октябрь 18, 2009, 14:08 » |
|
Как это узнать ?
В консоле выполни locale.
|
|
|
Записан
|
|
|
|
QtProger
Гость
|
|
« Ответ #8 : Октябрь 18, 2009, 14:10 » |
|
'locale' is not recognized as an internal or external command, operable program or batch file. Я в Винде сижу. Наверно нет такой команды
|
|
|
Записан
|
|
|
|
BRE
Гость
|
|
« Ответ #9 : Октябрь 18, 2009, 14:15 » |
|
Я в Винде сижу. Наверно нет такой команды
В main добавь: C++ (Qt) QTextCodec *codec = QTextCodec::codecForName( QTextCodec::codecForLocale() ); QTextCodec::setCodecForTr( codec ); QTextCodec::setCodecForCStrings( codec );
Выводи текст: C++ (Qt) QFile file(fileName); file.open(QIODevice::WriteOnly); QTextStream text( &file ); text << QString( "Привет" );
|
|
|
Записан
|
|
|
|
QtProger
Гость
|
|
« Ответ #10 : Октябрь 18, 2009, 14:30 » |
|
Выдает ошибку: error: no matching function for call to `QTextCodec::codecForName(QTextCodec*)'C++ (Qt) /*тут ошибка*/QTextCodec *codec = QTextCodec::codecForName( QTextCodec::codecForLocale() ); QTextCodec::setCodecForTr( codec ); QTextCodec::setCodecForCStrings( codec );
|
|
|
Записан
|
|
|
|
BRE
Гость
|
|
« Ответ #11 : Октябрь 18, 2009, 14:32 » |
|
Выдает ошибку:
Это я запарился. C++ (Qt) QTextCodec *codec = QTextCodec::codecForLocale(); QTextCodec::setCodecForTr( codec ); QTextCodec::setCodecForCStrings( codec );
|
|
|
Записан
|
|
|
|
QtProger
Гость
|
|
« Ответ #12 : Октябрь 18, 2009, 14:58 » |
|
Работает ! Спасибо !!!
|
|
|
Записан
|
|
|
|
lit-uriy
|
|
« Ответ #13 : Октябрь 18, 2009, 16:48 » |
|
>>Как это узнать ? Дык, тебе должно быть виднее.
|
|
|
Записан
|
Юра.
|
|
|
QtProger
Гость
|
|
« Ответ #14 : Октябрь 18, 2009, 17:54 » |
|
C++ (Qt) QFile file(fileName); file.open(QIODevice::WriteOnly); QTextStream text( &file ); text << QString( "Привет" );
QString( "Привет" ) - это функция. Навожу на него мышь, нажимаю F1 и вылезает "QString Class Reference". Что такое QString ?
|
|
|
Записан
|
|
|
|
|