qPrintable()
документация предлагает использовать qUtf8Printable()
для qDebug()
, qWarning()
и др. c. аргументы. QVERIFY2()
документация предлагает использовать qPrintable()
в качестве аргумента message
. Это преднамеренное различие в использовании или просто ошибка обновления документации, когда qUtf8Printable()
был представлен в Qt 5.4?
Я заметил, что qUtf8Printable()
в коде платформы Qt в основном используется внутри qDebug()
, qWarning()
, et c. qPrintable()
гораздо чаще встречается в QVERIFY2()
и QFAIL()
, но qUtf8Printable()
также используется в некоторых местах.
Я пробовал как UTF-8, так и не-UTF-8 локали на моем GNU / Linux, но не может получить искаженные русские или японские символы из qWarning()
или QVERIFY2()
, не включая QString message
в qPrintable()
или qUtf8Printable()
(используя системную версию Qt 5.14.1) , Интересно, может ли выбор между этими двумя функциями преобразования иметь значение только для Windows или Ma c OS X?
Если окажется, что qPrintable()
следует использовать в QFAIL()
и QVERIFY2()
, означает ли это, что символы, не поддерживаемые локальной 8-битной кодировкой, не должны передаваться в аргументе message
этим макросам?