Название: Qt 4.6 /4.7 - Кодировки Отправлено: RankoR от Июнь 11, 2010, 21:33 Здравствуйте! Пишу класс для работы с протоколом OSCAR, столкнулся с проблемой определения кодировки - то, что работает под Линуксом - не работает под виндой, и наоборот, + некоторые клиенты отправляют сообщения вообще непонятно в какой кодировке.
Вопрос, я думаю, очевиден - есть ли какой-то (надежный, желательно) метод определения кодировки системы и некоторого текста? Название: Re: Qt 4.6 /4.7 - Кодировки Отправлено: pashazz от Июнь 11, 2010, 21:38 Интересно, зачем класс для работы с проприетарной асечкой? http://github.com/holycheater/qt-icq-transport/
Название: Re: Qt 4.6 /4.7 - Кодировки Отправлено: pashazz от Июнь 11, 2010, 21:47 А вообще...
Код
прошу прощения за неточности. Название: Re: Qt 4.6 /4.7 - Кодировки Отправлено: RankoR от Июнь 11, 2010, 21:50 Для написания юзабельного ICQ-клиента (не хочу холиварить, но под линукс пока ни одного не видел. qutIM в каком-то зачаточном состоянии, Pidgin жутко не удобный, субъективно, конечно). Плюс имею доступ к приватной информации о протоколе в виде друга, который уже несколько лет занимается его реверсингом.
Ну это не так важно, в принципе, вопрос остается тот же. Название: Re: Qt 4.6 /4.7 - Кодировки Отправлено: RankoR от Июнь 11, 2010, 21:51 Спасибо, сейчас попробую. Только проблема все-таки решена не полностью - как определить кодировку текста, хранящегося в QByteArray?
Название: Re: Qt 4.6 /4.7 - Кодировки Отправлено: pashazz от Июнь 11, 2010, 22:18 Для написания юзабельного ICQ-клиента (не хочу холиварить, но под линукс пока ни одного не видел. qutIM в каком-то зачаточном состоянии, Pidgin жутко не удобный, субъективно, конечно). Плюс имею доступ к приватной информации о протоколе в виде друга, который уже несколько лет занимается его реверсингом. Ну это не так важно, в принципе, вопрос остается тот же. Эм, а вы QutIM 0.3 trunk пробовали? И еще, ваш клиент будет открытым? Название: Re: Qt 4.6 /4.7 - Кодировки Отправлено: RankoR от Июнь 11, 2010, 22:29 Конечно будет. Пробовал, не очень понравилось. Опять же, чисто субъективно (негативное мнение сложилось еще после просмотра исходников версии 0.2)
Название: Re: Qt 4.6 /4.7 - Кодировки Отправлено: Sancho_s_rancho от Июнь 11, 2010, 23:46 Спасибо, сейчас попробую. Только проблема все-таки решена не полностью - как определить кодировку текста, хранящегося в QByteArray? В общем случае - никак. пи.си. Я-то наивный думал что во всяких icq юникод какой-то используется. Название: Re: Qt 4.6 /4.7 - Кодировки Отправлено: RankoR от Июнь 12, 2010, 10:13 пи.си. Я-то наивный думал что во всяких icq юникод какой-то используется. Да там "кто во что горазд". С QIP и оф. клиентом все ок, а Jimm присылает в хрен-пойми-какой кодировке.P.S. Если у меня системная кодировка Windows-1251, к примеру, а текст - в UTF-16, то мне нужно делать так? Код: QTextCodec *codec = QTextCodec::codecForName("Windows-1251"); или toUnicode()? я путаюсь постоянно в этом. Название: Re: Qt 4.6 /4.7 - Кодировки Отправлено: Sancho_s_rancho от Июнь 12, 2010, 10:55 Кодировка виндовс тут вообще не при чем. Как я понял вам надо пришедший текст (массив байтов) перекодировать в QString.
Вы знаете (или сильно предполагаете), что такой-то клиент присылает в таком-то юникоде, а такой-то клиент в однобайтовой кодировке windows-1251. У вас есть массив байтов QByteArray ba, полученный от клиента: Код: QTextCodec *codec; |