Russian Qt Forum

Qt => Базы данных => Тема начата: Примерный ученик от Январь 30, 2011, 15:57



Название: В какой кодировке это читать?
Отправлено: Примерный ученик от Январь 30, 2011, 15:57
Код:
???? ?????????????? ???????????????????????????? ?? ??????????????: Connection refused (0x0000274D/10061)
???????????????? ???? ???????????? ???? ?????????? "192.168.200.13" ?? ?????????????????? ????
TCP/IP ???????????????????? ???? ?????????? 5432?
QPSQL: Unable to connect
???????????????? ???????????????? ????????????????????
QPSQL: Unable to connect

это
MyPSQL->lastError().text();

PostgreSQL 8.1, QT3.3.8, windows ???


Название: Re: В какой кодировке это читать?
Отправлено: Fat-Zer от Январь 30, 2011, 16:10
я бы предложил отправить вывод напрямую в файл и попробовать разные...


Название: Re: В какой кодировке это читать?
Отправлено: Примерный ученик от Январь 30, 2011, 16:17
я бы предложил отправить вывод напрямую в файл и попробовать разные...
Это уже в файле
Код:
			QCString ss(MyPSQL->lastError().text());
ss.append("\n");
fl.writeBlock(ss,ss.length());
???


Название: Re: В какой кодировке это читать?
Отправлено: ilyagoo от Январь 30, 2011, 16:32
думаю, что это надо читать в той кодировке, которая указана в качестве кодировки клиента postgresql


Название: Re: В какой кодировке это читать?
Отправлено: Fat-Zer от Январь 30, 2011, 16:35
ну так попробуйте открыть в разных кодировках с помощью любого редактора(только не говорите, что у вас только блокнот под рукой)


Название: Re: В какой кодировке это читать?
Отправлено: sadhu от Январь 30, 2011, 20:14
Сделай так и посмотри где твоё значение не выглядит белибердой :
Код:
#include <QTextCodec>
#include <QFile>
#include <QTextStream>
int main(int argc, char *argv[])
{
    QFile f("values.txt");
    f.open(QFile::WriteOnly);
QTextStream out(&f);
    QByteArray strangeValue="Странное значение";
    foreach(QByteArray codecName,QTextCodec::availableCodecs())
    {
        QTextCodec * codec=QTextCodec::codecForName(codecName);
        out<<"Codec name: "<<codecName<<endl<<"Value:"<<endl<<
                codec->toUnicode(strangeValue)<<endl;

    }

    f.close();
    return 0;
}


Название: Re: В какой кодировке это читать?
Отправлено: Примерный ученик от Январь 30, 2011, 20:53
Да пробовал все.
Вот файл


Название: Re: В какой кодировке это читать?
Отправлено: Fat-Zer от Январь 30, 2011, 21:47
Первая строчка - cp1251, а в остальных - самые настоящие вопросы(символ '?' с кодом 0x3F в любой кодировке)


Название: Re: В какой кодировке это читать?
Отправлено: Примерный ученик от Январь 30, 2011, 22:53
Первая строчка - cp1251, а в остальных - самые настоящие вопросы(символ '?' с кодом 0x3F в любой кодировке)
Видел. Но как такое может быть ???
От одной и той же базы ;D


Название: Re: В какой кодировке это читать?
Отправлено: lit-uriy от Январь 31, 2011, 11:20
скорее всего чать сообщения генерируется драйвером Qt, а другая часть - СУБДэхой.
Не знаю как в тройке, но в четвёрке можно обе части сообщения получить по отдельности:
QString QSqlError::databaseText () const
QString QSqlError::driverText () const


Название: Re: В какой кодировке это читать?
Отправлено: developer от Февраль 04, 2011, 12:43
Проверь, что у тебя у винде включена поддержка русского/украинского языка или как там.

1. Start->Settings->Control Panel->Regional and Language Options.
2. Go to tab "Advanced";
3. Select Russian/Ukrainian from ComboBox.


Название: Re: В какой кодировке это читать?
Отправлено: Примерный ученик от Февраль 05, 2011, 18:05
developer
Под Линукс все то же самое ;D
Так что не в Винде дело