Название: кодировка? Отправлено: DmitryKSL от Май 26, 2010, 07:58 Нашел пример для запуска приложения из командной строки, на его основе получилось так:
Код: void Dialog::GetUserInfo() Вижу: "eooeai " "йцукен" Т.е. qDebug()<< QString::fromLocal8Bit("йцукен") выводит правильно. Что-то не соображу где что еще надо сделать. Название: Re: кодировка? Отправлено: alexman от Май 26, 2010, 08:09 Попробуй так
Код: arguments <<"/C"<< QTextCodec::codecForLocale()->toUnicode( "echo йцукен" ); Название: Re: кодировка? Отправлено: DmitryKSL от Май 26, 2010, 09:56 Попробуй так "©жгЄҐКод: arguments <<"/C"<< QTextCodec::codecForLocale()->toUnicode( "echo йцукен" ); " "йцукен" А тут так надо? qDebug()<< myProcess->readAllStandardOutput(); Тогда получаю "©?a?? " "йцукен" Название: Re: кодировка? Отправлено: sne от Май 26, 2010, 11:21 В винде для вывода в консоль используется не виндовая cp1251, а cp866, если я не ошибаюсь. Отсюда и кракозябры.
Название: Re: кодировка? Отправлено: DmitryKSL от Май 27, 2010, 09:41 В винде для вывода в консоль используется не виндовая cp1251, а cp866, если я не ошибаюсь. Отсюда и кракозябры. Тогда как кодировку поменять? В самой командной строке есть опция выводить в unicode например, но никак не пойму как этот ключ использовать.Название: Re: кодировка? Отправлено: DmitryKSL от Май 28, 2010, 07:11 Решение найдено
было qDebug()<< QString::fromLocal8Bit(myProcess->readAllStandardOutput()); стало QTextCodec::setCodecForTr(QTextCodec::codecForName("CP866")); qDebug()<< tr(myProcess->readAllStandardOutput()); Очень много времени потратил на поиски информации, два дня практически. Видел пример где писалось "IBM 866", и как дурак использовал это , а оно ни фига не то же самое что "CP866". |