Подымаю соединение следующим образом...
void ConAcceptor::connect_net()
{
int Debuger = 1;
QByteArray encodedString;
QStringList arg;
arg << connection_name ; //параметры для команды rasdial
proc->start("rasdial", arg);
proc->waitForFinished();
encodedString = proc->readAll();
QTextCodec *codec = QTextCodec::codecForName("Windows-1251");
QString message = codec->toUnicode(encodedString);
emit emit_logger(0,QString("( CONNECTION ) \n%1.").arg(message));
proc->close();
emit_logger сигнал для записи данных в файл следующим образом:
switch(cod)
{
case 0:
str_coment = " INFO: ";
break;
case 1:
str_coment = " WARNING: ";
break;
case 2:
str_coment = " ERROR: ";
break;
}
QDate date_now;
QString str_date = date_now.currentDate().toString("yyyy-MM-dd");
QDateTime date_time_now;
QString str_date_time = date_time_now.currentDateTime().toString("yyyy-MM-dd HH:mm:ss");
QString fileName = "log/" + str_date + ".txt";
//Создаем указательна на файл
QFile fileLog(fileName);
if(fileLog.exists()){
if (!fileLog.open(QIODevice::Append | QIODevice::Text)){
if(Debuger) qDebug() << "error open file log QIODevice::Append";
return;
}
}else{
if (!fileLog.open(QIODevice::WriteOnly | QIODevice::Text)){
if(Debuger) qDebug() << "error open file log QIODevice::WriteOnly";
return;
}
}
QTextStream out(&fileLog);
out << str_date_time << str_coment << text << "\n";
fileLog.close();
кодировка исходников UTF-8, платформа Win-s,
при записи данных от rasdial-a которые конвертировал в UTF-8 в файл получается нечто :
“бв ®ўЄ бўп§Ё б BEELINE...
Џа®ўҐаЄ Ё¬ҐЁ Ё Ї а®«п Ї®«м§®ў ⥫п...
ђҐЈЁбва жЁп Є®¬ЇмовҐа ў бҐвЁ...
“бв ®ў«Ґ бўп§м б BEELINE.
Љ®¬ ¤ гбЇҐи® § ўҐаиҐ .
а если на прямую записываю то вместо кирилицы
?
хотя в консоли при qDebug() <<message который является результатом перекодировки в UTF-8 данных от rasdial выводится вида:
Установка связи с BEELINE...
Проверка имени и пароля пользователя...
Регистрация компьютера в сети...
Установлена связь с BEELINE.
Команда успешно завершина.
как разобраться с этим...