MAC - QString 用反斜杠空格替换空格
MAC - QString replace spaces with backslash spaces
首先,我看到了。
我目前在 Mac 上使用 Qt 5.8,并尝试了以下代码:
QString test("/Users/test/Documents/ASCII Tables.pdf");
qDebug() << test.replace(" ", "\ ");
预期结果应该是这样的:
"/Users/test/Documents/ASCII\ Tables.pdf"
我得到的是添加了两个黑斜杠:
"/Users/test/Documents/ASCII\ Tables.pdf"
有人有建议吗?
更新:(关于@docsteer 的回答)我打算使用 QString test
作为 QProcess:start()
的一部分,例如:
QProcess process;
process.start("ls " + test);
process.waitForFinished(-1);
qDebug() << process.readAllStandardOutput();
qDebug() << process.readAllStandardError();
结果与预期不符,因为两个反斜杠都插入到命令中:
""
"ls: /Users/test/Documents/ASCII\: No such file or directory\nls: Tables.pdf: No such file or directory\n"
您看到的不是字符串的实际内容。 QDebug 在打印字符时转义字符:
http://doc.qt.io/qt-5/qdebug.html#operator-lt-lt-16
Normally, QDebug prints the string inside quotes and transforms
non-printable characters to their Unicode values (\u1234).
To print non-printable characters without transformation, enable the
noquote() functionality.
如果您将代码更改为
qDebug().noquote() << test.replace(" ", "\ ");
您会看到您所期望的 - 字符串的原始内容
首先,我看到了
我目前在 Mac 上使用 Qt 5.8,并尝试了以下代码:
QString test("/Users/test/Documents/ASCII Tables.pdf");
qDebug() << test.replace(" ", "\ ");
预期结果应该是这样的:
"/Users/test/Documents/ASCII\ Tables.pdf"
我得到的是添加了两个黑斜杠:
"/Users/test/Documents/ASCII\ Tables.pdf"
有人有建议吗?
更新:(关于@docsteer 的回答)我打算使用 QString test
作为 QProcess:start()
的一部分,例如:
QProcess process;
process.start("ls " + test);
process.waitForFinished(-1);
qDebug() << process.readAllStandardOutput();
qDebug() << process.readAllStandardError();
结果与预期不符,因为两个反斜杠都插入到命令中:
""
"ls: /Users/test/Documents/ASCII\: No such file or directory\nls: Tables.pdf: No such file or directory\n"
您看到的不是字符串的实际内容。 QDebug 在打印字符时转义字符:
http://doc.qt.io/qt-5/qdebug.html#operator-lt-lt-16
Normally, QDebug prints the string inside quotes and transforms non-printable characters to their Unicode values (\u1234).
To print non-printable characters without transformation, enable the noquote() functionality.
如果您将代码更改为
qDebug().noquote() << test.replace(" ", "\ ");
您会看到您所期望的 - 字符串的原始内容