Доброго времени суток!
Наткнулся на такую странную вешь: когда я создаю QString("\""); я должен получить в строке ", но получаю \"
И так со всеми esc-последовательностями
Пример:
void foo(QString y) {
std::cout << y.toStdString(); //cout, потому что у меня переназначен qDebug и там вывод идёт через cout
}
int main() {
foo(QObject::tr("\"bar\"")); // в консоль выводится \"bar\"
}
Как это исправить? Или, вероятно, я что-то делаю не так?
Спасибо!
upd Методом тестов выяснил, что судя по всему в этом виноват qDebug(причём не функция, которую он вызывает, а сам дебаг, в функцию приходит уже неправильная строка) и что если в него отправить строку, то всё нормально, проблема возникает только, если отправить QString:
qDebug() << "foo\"bar"; //foo"bar
qDebug() << QString("foo\"bar"); //foo\"bar