воскресенье, 22 сентября 2013 г.

qDebug() и кодировка Windows 1251


Опубликовано в ЖЖ в феврале 2010, актуально для Qt4.
Оригинал

Хороший макрос. Однако его полезность весьма и весьма сомнительна в случае, когда нужно выводить на консоль национальные - в частности, русские - символы. Конечно, тут же набегает кучка полудурков-советчиков, предлагающих всяческие извращения в виде транслита, логов, GUI, многократных перекодировок..
Ответ я нашёл здесь.

QTextStream out(stdout);
out.setCodec(QTextCodec::codecForName("IBM 866"));
out << line;

Коротко и красиво. Понятно, что использование "IBM 866" предназначено для винды. Но лучше наросать пару макросов для проекта, подставляющих локально нужную кодовую страницу в целевой системе, чем прыгать с остальными бубнами.

Комментариев нет: